עץץץץ AVL. עץ AVL הוא עץ חיפוש בינארי שמקיים את התנאי הבא: לכל צומת x בעץ גורם האיזון של x הוא 1, 0, או 1-. הגדרה: במילים אחרות: לכל צומת x בעץ,

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "עץץץץ AVL. עץ AVL הוא עץ חיפוש בינארי שמקיים את התנאי הבא: לכל צומת x בעץ גורם האיזון של x הוא 1, 0, או 1-. הגדרה: במילים אחרות: לכל צומת x בעץ,"

Transcript

1 עץץץץ AVL הגדרה: עץ AVL הוא עץ חיפוש בינארי שמקיים את התנאי הבא: לכל צומת x בעץ גורם האיזון של x הוא 1,, או 1-. h(t left(x) ) - h(t right(x) ) 1 במילים אחרות: לכל צומת x בעץ, בעץ AVL שומרים עבור כל צומת x (בנוסף לשדות ששומרים בעץ חיפוש בינארי) שדה נוסף שנקרא balance(x) שמכיל את גורם האיזון של x. לדוגמה, העץ הבא הוא עץ :AVL אם נוריד מהעץ הנ"ל את הצומת 9 (או את הצומת 14) הוא לא יהיה עץ AVL 35

2 .h=θ(log n) משפט: T עץ AVL יהי בעל n צמתים וגובה h. אזי: הוכחה נסמן ב- (h) T max את עץ ה- AVL בעל המספר הגדול ביותר של צמתים מבין כל עצי ה- AVL בגובה h. נסמן ב- ((h) n(t max את מספר הצמתים בעץ (h).t max לדוגמה, עבור h=1 העץ (1) max T נראה כך עבור =h העץ () max T נראה כך עבור 3=h העץ (3) max T נראה כך נספור את מספר הצמתים בעץ (h) T max לפי רמות: ברמה הראשונה יש צומת אחד ברמה השנייה יש צמתים ברמה השלישית יש צמתים וכן הלאה, עד הרמה האחרונה שבה יש 1-h צמתים. לכן נקבל את הנוסחה הבאה: n(t max (h)) = h-1 = h h 1 = 1 1 יהי T עץ AVL כלשהו בעל n צמתים וגובה h. מספר הצמתים ב- T קטן או שווה למספר הצמתים בעץ בעל מספר הצמתים הגדול ביותר מבין כל העצים בגובה.h ולכן נקבל: (h)) n n(t max נציב את הערך של ((h) n(t max שמצאנו בנוסחה הקודמת ונקבל: n n+ 1 h h 1 log (n+ 1) h h log(n+ 1) = θ(log n) h= Ω(log n) ולכן: ולכן הראנו ש- 36

3 נסמן ב- (h) T min את עץ ה- AVL בעל המספר הקטן ביותר של צמתים מבין כל עצי ה- AVL בגובה h. (במקרה הזה העץ לא בהכרח יחיד). נסמן ב- ((h) n(t min את מספר הצמתים בעץ (h) T. min לדוגמה, עבור 1=h העץ (1) min T נראה כך עבור =h העץ () min T נראה כך עבור 3=h העץ (3) min T נראה כך עבור 4=h העץ (4) min T נראה כך n(t min (h)) = n(t min (h-1)) + n(t min (h-)) + 1 עזר: טענת טענת העזר: יהי T עץ AVL בגובה h בעל מספר קטן ביותר של צמתים הוכחת מבין כל עצי ה- AVL בגובה h. לפי הגדרה, מספר הצמתים ב- T הוא ((h).n(t min נסמן ב- r את שורש העץ T. אם הגובה של תת העץ השמאלי של r שווה לגובה של תת העץ הימני של r אזי הגובה של שניהם חייב להיות 1-h (אחרת הגובה של T לא יהיה ), h ואז אפשר להוריד צומת אחת מאחד משני העצים האלה (לא חשוב מאיזה) ולקבל עץ AVL בגובה h שמספר הצמתים בו הוא אחד פחות ממספר הצמתים בעץ T, דהינו מספר הצמתים בעץ שנקבל יהיה 1-((h),n(T min סתירה. לכן הגובה של תת העץ השמאלי של r שונה מהגובה של תת העץ הימני של r. ולכן הגובה של אחד מהם (נניח השמאלי) חייב להיות 1-h והגובה של השני (נניח הימני) חייב להיות -h. מספר הצמתים בתת העץ השמאלי חייב להיות ((1-h) n(t min כי זה המספר הקטן ביותר האפשרי לעץ בגובה 1-h ואם מספר הצמתים יהיה גדול מזה, אז נקבל סתירה לכך ש T הוא עץ AVL בגובה h בעל מספר קטן ביותר של צמתים. באופן דומה, מספר הצמתים בתת העץ הימני חייב 37

4 להיות ((-h).n(t min לסיכום הנוסחה שלעיל נובעת מכך שמספר הצמתים בעץ T שווה למספר הצמתים בתת העץ השמאלי של r ועוד מספר הצמתים בתת העץ הימני של r ועוד אחד (עבור השורש r). מ.ש.ל מטענת העזר נקבל: n(t min (h)) = n(t min (h-1)) + n(t min (h-)) + 1 n(t min (h-)) + n(t min (h-)) + 1 n(t min (h-)) + n(t min (h-)) = n(t min (h-)) (1) n(t min (h)) n(t min (h-)) ולכן קיבלנו ש- נציב ב- (1) -h במקום h ונקבל: () n(t min (h-)) n(t min (h-4)) מ - (1) ו- () נקבל: (3) n(t min (h)) n(t min (h-4)) באופן כללי נקבל: n(t min (h)) i n(t min (h-i)) i= h 1 נחפש i שמקיים = 1 h-i ונקבל מאחר - i חייב להיות מספר שלם נוכל להציב את ה- i הזה רק עבור h אי זוגי. n(t h 1 h 1 min (h)) n(tmin (1)) = n(t h i= ולכן במקרה ש- h אי זוגי נקבל: במקרה ש- h זוגי נחפש i שמקיים = h-i ונקבל ולכן במקרה ש- h זוגי נקבל: h h h h 1 min (h)) n(tmin ()) = = 38

5 לסיכום, בשני המקרים (h זוגי ו- h אי זוגי) קיבלנו: n(t h 1 min (h)) יהי T עץ AVL כלשהו בעל n צמתים וגובה h. מספר הצמתים ב- T גדול או שווה למספר הצמתים בעץ בעל מספר הצמתים הקטן ביותר מבין כל העצים בגובה.h ולכן נקבל: (h)) n n(t min נציב את אי השוויון שמצאנו עבור ((h) n(t min בנוסחה הקודמת ונקבל: n n(t h 1 min (h)) n h 1 h 1 log n h log n+ 1= θ(log n) ולכן: h= Ο(log n) ולכן הראנו ש- לסיכום, הראנו ש- מ.שששש.לללל h= θ(log n) 39

6 לאלגוריתם ההוספה לעץ AVL דוגמאות דוגמה עם גלגול LL הוספה : 1 להלן עץ AVL שבו מעל כל צומת רשום גורם האיזון שלה נראה איך מוסיפים צומת לעץ הנ"ל. בשלב ראשון מוספים את לעץ כמו שמוסיפים לעץ חיפוש בינארי והתוצאה היא: 4

7 בשלב הבא, מתחילים לטפס מהצומת שהוספנו כלפי מעלה ומעדכנים גורמי איזון. אם הגענו לצומת שגורם האיזון שלה היה משנים אותו ל 1 או ל 1- תלוי מאיזה כוון הגענו, וממשיכים לטפס למעלה. בדוגמה שלנו נשנה את גורמי האיזון של הצמתים, 4 ו- 5 להיות 1+ ונקבל את העץ הבא: 41

8 כשנמשיך לטפס, נגיע לצומת 7 שגורם האיזון שלה הופך להיות +. נקרא לצומת הזאת "צומת בעיתית" (כי אסור לנו לשנות את גורם האיזון שלה שלה ל- +). במקום לשנות את גורם האיזון של הצומת הבעייתית, נבצע "גלגול" סביב הצומת הבעייתית. לפני שנבצע את הגלגול עלינו לקבוע את "סוג הגלגול". כדי לקבוע את סוג הגלגול נלך שני צעדים מהצומת הבעייתית לעבר הצומת שהוספנו. אם הלכנו פעמיים שמאלה (כמו במקרה הנ"ל) אז הגלגול הוא מסוג LL אם הלכנו פעמים ימינה אז הגלגול הוא מסוג RR אם הלכנו שמאלה ואחר כך ימינה אז הגלגול הוא מסוג LR אם הלכנו ימינה ואחר כך שמאלה אז הגלגול הוא מסוג RL בדוגמה הנ"ל נבצע גלגול מסוג LL סביב צומת 7. הגלגול מתבצע על תת העץ ששורשו 7, ולכן נסתכל עכשיו על תת העץ הזה ונראה איך מתבצע הגלגול. 4

9 L 7 L בגלגול LL מסובבים ימינה סביב הצומת הבעייתית. זאת אומרת 5 הופכת להיות השורש ו- 7 הופכת להיות הבן הימני של 5. בנוסף שומרים על כל הקשרים שהיו מקודם, חוץ מהקשר החדש שמתבטא בציור למעלה על ידי הקו המקווקו, שמחבר בין 7 ל -6. לכן לאחר הגלגול התוצאה היא: כעת נחליף בעץ המקורי את תת העץ ששורשו 7, בתת העץ שהתקבל לאחר הגלגול (ששורשו הוא 5) ונקבל את העץ הבא: 43

10 מאחר ולאחר הגלגול הגובה של תת העץ השמאלי של 1 (כולל התוספת של הצומת ) שווה לגובה של תת העץ השמאלי של 1 לפני שהוספנו את צומת, גורם האיזון של 1 הוא נכון (נשאר כפי שהיה בעץ המקורי), ולכן אפשר לעצור את האלגוריתם (בלי להמשיך לטפס ל- 1) ולסיים את הוספת לעץ. 44

11 דוגמה עם גלגול RR הוספה : להלן עץ AVL שבו מעל כל צומת רשום גורם האיזון שלה נראה איך מוסיפים צומת 3 לעץ הנ"ל. כמו בדוגמה הקודמת בשלב ראשון מוספים את 3 לעץ כמו שמוסיפים לעץ חיפוש בינארי ובשלב השני מטפסים מהצומת שהוספנו למעלה ומעדכנים גורמי איזון, עד שמגיעים ל"צומת בעיתית". והתוצאה היא: R -1 5 R 3 כאשר הצומת היא "צומת בעיתית". כמו קודם, כדי לקבוע את סוג הגלגול נלך שני צעדים מהצומת הביתית לעבר הצומת שהוספנו. מאחר והלכנו פעמים ימינה סוג הגלגול הוא.RR בגלגול RR מסובבים שמאלה סביב הצומת הבעייתית. זאת אומרת 5 הופכת להיות השורש ו- הופכת להיות הבן השמאלי של 5. בנוסף שומרים על כל הקשרים שהיו מקודם, חוץ מהקשר החדש בין לבן השמאלי של 5 (אם היה לו בן כזה). מאחר ובדוגמה הזאת ל- 5 אין בן שמאלי, זה מקרה מנוון שאין בו קשר חדש. לכן לאחר הגלגול התוצאה הסופית היא: 45

12 דוגמה עם גלגול LR הוספה : 3 להלן עץ AVL שבו מעל כל צומת רשום גורם האיזון שלה נראה איך מוסיפים צומת 6 לעץ הנ"ל. כמו בדוגמאות הקודמת בשלב ראשון מוספים את 6 לעץ כמו שמוסיפים לעץ חיפוש בינארי ובשלב השני מטפסים מהצומת שהוספנו למעלה ומעדכנים גורמי איזון, עד שמגיעים ל"צומת בעיתית". והתוצאה היא: 46

13 L R כמו קודם, כדי לקבוע את סוג הגלגול נלך שני צעדים מהצומת הביתית לעבר הצומת שהוספנו. מאחר והלכנו שמאלה ואחר כך ימינה סוג הגלגול הוא.LR גלגול LR מורכב משני שלבים: בשלב ראשון מבצעים גלגול מסוג RR (דהינו מסובבים שמאלה) סביב הבן השמאלי של הצומת הבעייתית. בשלב שני (על התוצאה של השלב הקודם) מבצעים גלגול מסוג LL (דהינו מסובבים ימינה) סביב הצומת הבעייתית. לאחר השלב הראשון, דהינו גלגול RR סביב צומת 5 העץ נראה כך: 47

14 לאחר השלב השני, דהינו גלגול LL סביב צומת 1 העץ נראה כך: ובכך מסתימת הוספת 6 לעץ. 48

15 דוגמה עם גלגול RL הוספה : 4 להלן עץ.AVL 8 1 נראה איך מוסיפים 9 לעץ הזה. לאחר הוספת 9 וביצוע השלב הראשון והשני עד שמגיעים לצומת הבעייתית מתקבל העץ הבא: 8 R L 1 9 כמו קודם, כדי לקבוע את סוג הגלגול נלך שני צעדים מהצומת הביתית לעבר הצומת שהוספנו. מאחר והלכנו ימינה ואחר כך שמאלה סוג הגלגול הוא.RL גלגול LR מורכב משני שלבים: בשלב ראשון מבצעים גלגול מסוגLL (דהינו מסובבים ימינה) סביב הבן הימני של הצומת הבעייתית. בשלב שני (על התוצאה של השלב הקודם) מבצעים גלגול מסוג RR (דהינו מסובבים שמאלה) סביב הצומת הבעייתית. לאחר השלב הראשון, דהינו גלגול LL סביב צומת 1 העץ נראה כך: 49

16 8 9 1 לאחר השלב השני, דהינו גלגול RR סביב צומת 8 העץ נראה כך: וזה העץ הסופי לאחר הוספת 9 לעץ המקורי. 5

17 לאלגוריתם ההוצאה מעץ AVL דוגמאות דוגמה עם גלגול LL הוצאה : 1 להלן עץ AVL שבו מעל כל צומת רשום גורם האיזון שלה נראה איך מוציאים צומת 8 מהעץ הנ"ל. בשלב ראשון מוציאים את 8 מהעץ כמו שמוציאים מעץ חיפוש בינארי והתוצאה היא: בשלב הבא, מתחילים לטפס מהאבא של הצומת שהוצאנו כלפי מעלה ומעדכנים גורמי איזון. אם הגענו לצומת שגורם האיזון שלה היה משנים אותו ל 1 או ל 1- תלוי מאיזה כוון הגענו, וממשיכים לטפס למעלה. בדוגמה שלנו אנחנו מגיעים לצומת 7 שגורם האיזון שלה אחרי ההוצאה הופך להיות 51

18 +. נקרא לה "צומת בעיתית" ונבצע סביבה גלגול. סוג הגלגול יקבע באופן הבא: אם הצומת שהוצאנו נמצא בתת העץ השמאלי של הצומת הבעייתית, אזי נלך שני צעדים ראשונים לכוון העלה העמוק ביותר בתת העץ הימני של הצומת הבעייתית. אם הצומת שהוצאנו נמצא בתת העץ הימני של הצומת הבעייתית, אזי נלך שני צעדים ראשונים לכוון העלה העמוק ביותר בתת העץ השמאלי של הצומת הבעייתית. בשני המקרים: אם הלכנו פעמיים שמאלה נבצע גלגול LL אם הלכנו פעמים ימינה נבצע גלגול RR אם הלכנו שמאלה ואחר כך ימינה נבצע גלגול LR אם הלכנו ימינה ואחר כך שמאלה נבצע גלגול RL אם אפשר לבחור גם בגלגול LL וגם בגלגול,LR נבחר בגלגול.LL אם אפשר לבחור גם בגלגול RR וגם בגלגול RL נבחר בגלגול.RR בדוגמה שלנו אפשר לבחור גם בגלגול LL וגם בגלגול LR ולכן נבחר בגלגול LL ונבצע אותו סביב הצומת הבעייתית : L L הגלגולים מתבצעים בדיוק באותו אופן כמו הגלגולים שתוארו באלגוריתם ההוספה. ולכן לאחר ביצוע גלגול LL סביב הצומת 7 התוצאה תהיה: 5

19 באלגוריתם ההוספה לאחר ביצוע גלגול אחד האלגוריתם עוצר. באלגוריתם ההוצאה לאחר ביצוע גלגול בודקים: אם גובה תת העץ מתחת הצומת הבעייתית לפני ההוצאה שווה לגובה תת העץ שנוצר לאחר ביצוע הגלגול אזי האלגוריתם עוצר. אם גובה תת העץ מתחת הצומת הבעייתית לפני ההוצאה קטן מגובה תת העץ שנוצר לאחר ביצוע הגלגול אזי האלגוריתם ממשיך לטפס למעלה לעדכן גורמי איזון (ולבצע גלגולים אם צריך). לכן, באלגוריתם ההוצאה יתכן ויקרו הרבה גלגולים (להבדיל מאלגוריתם ההוספה שבו מתבצע לכל היותר גלגול אחד). בדוגמה שלנו מאחר וגובה תת העץ ששורשו 7 לפני ההוצאה שווה לגובה תת העץ שנוצר אחרי הגלגול ששורשו 5, האלגוריתם עוצר. 53

20 דוגמה עם גלגול LR הוצאה : להלן עץ AVL שבו מעל כל צומת רשום גורם האיזון שלה נראה איך מוציאים את צומת 5 מהעץ הנ"ל. כמו בדוגמה הקודמת בשלב ראשון מוציאים את 5 כמו שמוציאים מעץ חיפוש בינארי ובשלב השני מטפסים מהאבא של הצומת שהוצאנו למעלה ומעדכנים גורמי איזון, עד שמגיעים ל"צומת בעיתית". והתוצאה היא: L -1 7 R כאשר הצומת 1 היא "צומת בעיתית". כמו קודם, כדי לקבוע את סוג הגלגול 54

21 נלך שני צעדים מהצומת הביתית לעבר העלה העמוק ביותר בתת העץ המנוגד לזה שממנו הוצאנו את הצומת. בדוגמה שלנו נלך שני צעדים החל מ- 1 לכוון 9 ומאחר והלכנו שמאלה ואחר כך ימינה נבצע גלגול מסוג LR סביב צומת 1. גלגול LR הוא אותו גלגול כפי שתואר באלגוריתם ההוספה. לאחר השלב הראשון של הגלגול LR (גלגול RR סביב צומת 7) התוצאה היא: לאחר השלב השני של הגלגול LR (גלגול LL סביב צומת 1) התוצאה היא: במקרה זה גובה תת העץ לאחר ביצוע הגלגול קטן ב- 1, ולכן אם צומת 8 לא הייתה השורש האלגוריתם היה ממשיך ומטפס למעלה. מאחר וצומת 8 היא השורש האלגוריתם עוצר. 55

22 דוגמה גלגול LL ולאחריו עם גלגול RL הוצאה : 3 להלן עץ.AVL נראה איך מוציאים את צומת 17 מעץ זה כמו בדוגמאות הקודמת בשלב ראשון מוציאים את 17 כמו שמוציאים מעץ חיפוש בינארי. והתוצאה היא: 16 1 R L בשלב שני, מזהים שהצומת היא צומת בעיתית, ושסוג הגלגול הנדרש הוא.RL לאחר ביצוע הגלגול RL התוצאה היא: 56

23 L 16 L מאחר וגובה תת העץ לאחר הגלגול קטן ב- 1 ממשיכים לטפס כלפי מעלה, מגיעים לצומת 16, מזהים שהיא צומת בעיתית ושסוג הגלגול הנדרש סביבה הוא.LL לאחר ביצוע הגלגול התוצאה היא: L מאחר והגענו לשורש האלגוריתם עוצר. 57

24 אלגוריתם הוספת איבר לעץ.AVL Insert(T,w).x=w בצע w קרא לפונקציה Insert(T,w) של עץ חיפוש בינארי להוםפת לעץ. (1 y=parent(x) ( אם y=null סיים. (3 אם = Balance(y) (ז"א גורם האיזון בצומת y בעץ לפני הוספת w היה ) בצע: (4.1 אם x בן ימני של y בצע: -1 = Balance(y) x=y ; וחזור לצעד. (4. אם x בן שמאלי של y בצע: +1 = Balance(y) x=y ; וחזור לצעד. (4 וסיים. (5 אם +1 = Balance(y) בצע: 5.1) אם x בן ימני של y בצע Balance(y)= הציור המתאים למצב זה: +1 y h+1 x h w 58

25 5.) אם x בן שמאלי של y בצע : 5..1) אם w נמצא בתת העץ השמאלי של x בצע גלגול מסוג LL בצומת y וסיים. הציור המתאים למצב זה: +1 y L a L x b c w אם w נמצא בתת העץ הימני של x בצע גלגול מסוג LR בצומת y וסיים. הציור המתאים למצב זה: +1 y (5.. L a x R b c w וסיים. (6 אם -1 = Balance(y) בצע: 6.1) אם x בן שמאלי של y בצע Balance(y)= הציור המתאים למצב זה: -1 y h x h+1 w 59

26 6.) אם x בן ימני של y בצע : 6..1) אם w נמצא בתת העץ הימני של x בצע גלגול מסוג RR בצומת y וסיים. הציור המתאים למצב זה: -1 y R a b x R c w אם w נמצא בתת העץ השמאלי של x בצע גלגול מסוג RL בצומת y וסיים. הציור המתאים למצב זה: -1 y (6.. R a b L x c w 6

27 אלגוריתם הוצאת איבר מעץ.AVL Delete(T,z) מהעץ. קרא לפונקציה Delete(T,z) של עץ חיפוש בינארי להוצאת z יהי w הצומת שהוצא מהעץ. (אם ל- z היה לכל היותר בן אחד אזי w=z אחרת ) right(z).( w=minimum(t בצע:.x=w (1 y=parent(x) ( אם y=null סיים. (3 אם = Balance(y) (ז"א גורם האיזון בצומת y בעץ לפני הוצאת w היה ) 4.1) אם x בן ימני של y בצע: 1+ = Balance(y) וסיים. 4.) אם x בן שמאלי של y בצע: 1- = Balance(y) וסיים. בצע: (4 וחזור לצעד. (5 אם +1 = Balance(y) בצע: (5.1 אם x בן שמאלי של y בצע Balance(y)= x=y ; הציור המתאים למצב זה: +1 y h+1 x h w 61

28 (5. אם x בן ימני של y בצע : יהיו a=left(y) c=right(a) ; b=left(a) ; (5..1 אם( H(T b ) h(t c בצע גלגול מסוג LL בצומת.y אם לאחר הגלגול גובה העץ T y לא השתנה סיים. אחרת בצע: x=y וחזור לצעד. +1 y הציור המתאים למצב זה: L b L a c x w אם( H(T b ) < h(t c בצע גלגול מסוג LR בצומת.y בצע: x=y וחזור לצעד. ( y הציור המתאים למצב זה: L b a R c x w וחזור לצעד. (6 אם -1 = Balance(y) בצע: (6.1 אם x בן ימני של y בצע Balance(y)= x=y ; הציור המתאים למצב זה: -1 y h x h+1 w 6

29 (6. אם x בן שמאלי של y בצע : יהיו a=right(y) c=right(a) ; b=left(a) ; (6..1 אם( H(T c ) h(t b בצע גלגול מסוג RR בצומת.y אם לאחר הגלגול גובה העץ T y לא השתנה סיים. אחרת בצע: x=y וחזור לצעד. -1 y הציור המתאים למצב זה: R x w b a R c אם( H(T c ) < h(t b בצע גלגול מסוג RL בצומת.y בצע: x=y וחזור לצעד. ( y הציור המתאים למצב זה: R x w b L a c 63

30 גלגול LL בהוספה להלן המצב המתואר בצעד 5..1 לפני ביצוע הגלגול מסוג :LL +1 y L a L x b c w נסמן ב- h את הגובה של תת העץ אזי נקבל שלפני ביצוע הגלגול (וללא הוספת w): לאחר ביצוע גלגול LL בצומת y נקבל:.h(T a )=h דהינו,w לפני שהוספנו את T a h(t b )=h, h(t c )=h, h(t y )=h+ x a L y w b c לאחר ביצוע הגלגול הגובה +h=( h(t x (כולל את הצומת w). מכיוון שגובה תת העץ שסביבו נעשה הגלגול נשאר כמו שהיה לפני הוספת w, אלגוריתם ההוספה עוצר. 64

31 גלגול RR בהוספה להלן המצב המתואר בצעד 6..1 לפני ביצוע הגלגול מסוג :RR -1 y R a b x R c w לאחר ביצוע גלגול RR בצומת y נקבל: x y c a b w מכיוון שגובה תת העץ שסביבו נעשה הגלגול נשאר כמו שהיה לפני הוספת w, אלגוריתם ההוספה עוצר. 65

32 גלגול LR בהוספה להלן המצב המתואר בצעד 5.. לפני ביצוע הגלגול מסוג :LR +1 y L a x R b c נוסיף לציור את שני הבנים של b ונקרא להם d ו-. e הצומת w יכול להיות צאצא של d או של e. לצורך ההדגמה נניח ש- w הוא צאצא של d ונקבל את הציור הבא: +1 y w L a x R b c d e w גלגול LR סביב צומת y מתבצע בשני שלבים: 1) גלגול RR סביב צומת x ) גלגול LL סביב צומת y לאחר גלגול LR סביב צומת y יתקבל הציור הבא: b x y a d e c w מכיוון שגובה תת העץ שסביבו נעשה הגלגול נשאר כמו שהיה לפני הוספת w, אלגוריתם ההוספה עוצר. 66

33 גלגול RL בהוספה להלן המצב המתואר בצעד 6.. לפני ביצוע הגלגול מסוג :RL -1 y R a b L x c w נוסיף לציור את שני הבנים של b ונקרא להם d ו-. e הצומת w יכול להיות צאצא של d או של e. לצורך ההדגמה נניח ש- w הוא צאצא של d ונקבל את הציור הבא: -1 y R a b L x c d e e w סביב צומת y מתבצע בשני שלבים: 1) גלגול LL סביב צומת x ) גלגול RR סביב צומת y גלגול RL לאחר גלגול RL סביב צומת y יתקבל הציור הבא: b y x a d e c w מכיוון שגובה תת העץ שסביבו נעשה הגלגול נשאר כמו שהיה לפני הוספת w, אלגוריתם ההוספה עוצר. 67

34 גלגול LL בהוצאה להלן המצב המתואר בצעד 5..1 לפני ביצוע הגלגול מסוג :LL +1 y L או +1 L b a c x w לאחר ביצוע גלגול LL בצומת y נקבל: a b L y c x w מחישובי הגבהים נקבל שקימות שתי אפשרויות: 1) אם בצומת a (לפני ההוצאה) גורם האיזון היה אזי מכיוון שגובה תת העץ שסביבו נעשה הגלגול נשאר כמו שהיה לפני הוצאת w, אלגוריתם ההוצאה עוצר. ) אם בצומת a (לפני ההוצאה) גורם האיזון היה 1+ אזי מכיוון שגובה תת העץ שסביבו נעשה הגלגול קטן ב- 1, אלגוריתם ההוצאה ממשיך. 68

35 גלגול RR בהוספה להלן המצב המתואר בצעד 6..1 לפני ביצוע הגלגול מסוג :RR -1 y R x w או -1 b a R c לאחר ביצוע גלגול RR בצומת y נקבל: a y c x b w מחישובי הגבהים נקבל שקימות שתי אפשרויות: 1) אם בצומת a (לפני ההוצאה) גורם האיזון היה אזי מכיוון שגובה תת העץ שסביבו נעשה הגלגול נשאר כמו שהיה לפני הוצאת w, אלגוריתם ההוצאה עוצר. ) אם בצומת a (לפני ההוצאה) גורם האיזון היה 1- אזי מכיוון שגובה תת העץ שסביבו נעשה הגלגול קטן ב- 1, אלגוריתם ההוצאה ממשיך. 69

36 גלגול LR בהוצאה להלן המצב המתואר בצעד 5.. לפני ביצוע הגלגול מסוג :LR +1 y L -1 a R x b c w נוסיף לציור את שני הבנים של c ונקרא להם d ו- e. +1 y נקבל את הציור הבא: L -1 a R x b c w d e לאחר גלגול LR סביב צומת y יתקבל הציור הבא: c a y b d e x w מחישובי הגבהים נקבל שגובה תת העץ שסביבו נעשה הגלגול קטן ב- 1 ולכן אלגוריתם ההוצאה ממשיך. 7

37 גלגול RL בהוצאה להלן המצב המתואר בצעד 6.. לפני ביצוע הגלגול מסוג :RL -1 y R x L a +1 w b c נוסיף לציור את שני הבנים של b ונקרא להם d ו- e. נקבל את הציור הבא: -1 y R x L a +1 w b c d e לאחר גלגול RL סביב צומת y יתקבל הציור הבא: b y a x d e c w מחישובי הגבהים נקבל שגובה תת העץ שסביבו נעשה הגלגול קטן ב- 1 ולכן אלגוריתם ההוצאה ממשיך. 71

38 עץץץץ -3 להלן דוגמה לעץ -3: עץ תכונות לכל צומת פנימית או 3 בנים. יוצא מן הכלל: אם בעץ -3 ישנו איבר אחד בלבד אז הוא נראה כך (ורק במקרה זה מותר שלשורש יהיה בן אחד): (1 הצמתים הפנימיים הם צמתי דמה, אין להם שדות key ו-.info האיברים של מבנה הנתונים נמצאים בעלים ולהם יש שדות key ו-.info העלים מסודרים משמאל לימין בסדר עולה לפי מפתחות האיברים אותם הם מיצגים. ( (3 כל העלים באותה רמה (ז"א כולם באותו מרחק מהשורש). (4 7

39 לכל עלה x בעץ ישנם את השדות הבאים: parent(x), first(x), second(x), third(x),key(x),info(x) לכל צומת פנימית x בעץ ישנם את השדות הבאים: parent(x), first(x), second(x), third(x),s1(x),s(x),s3(x) (5 (6 כאשר: first(x) מציין את המפתח הקטן ביותר בתת העץ ששורשו - s1(x) דהינו בתת העץ first(x) T second(x) מציין את המפתח הקטן ביותר בתת העץ ששורשו - s(x) דהינו בתת העץ T second(x) third(x) מציין את המפתח הקטן ביותר בתת העץ ששורשו - s3(x) דהינו בתת העץ T third(x) 73

40 .h=θ(log n) משפט: T עץ -3 יהי בעל n צמתים וגובה h. אזי: הוכחה נסמן ב- (h) T max את עץ ה- -3 בעל המספר הגדול ביותר של צמתים מבין כל עצי ה- AVL בגובה h. נסמן ב- ((h) n(t max את מספר הצמתים בעץ (h).t max לדוגמה, עבור h=1 העץ (1) max T נראה כך עבור =h העץ () max T נראה כך עבור 3=h העץ (3) max T נראה כך נספור את מספר הצמתים בעץ (h) T max לפי רמות: ברמה הראשונה יש צומת אחד ברמה השנייה יש 3 צמתים ברמה השלישית יש 3 צמתים וכן הלאה, עד הרמה האחרונה שבה יש 1-h 3 צמתים. לכן נקבל את הנוסחה הבאה: n(t max (h)) = h-1 = = 3 1 יהי T עץ -3 כלשהו בעל n צמתים וגובה h. מספר הצמתים ב- T קטן או שווה למספר הצמתים בעץ בעל מספר הצמתים הגדול ביותר מבין כל העצים בגובה.h ולכן נקבל: (h)) n n(t max נציב את הערך של ((h) n(t max שמצאנו בנוסחה הקודמת ונקבל: h h h 3 1 n n+ 1 h 3 ולכן: (n log 3 + 1) h h log3(n+ 1) = θ(log n) h= Ω(log n) ולכן הראנו ש- 74

41 נסמן ב- (h) T min את עץ ה- -3 בעל המספר הקטן ביותר של צמתים מבין כל עצי ה- AVL בגובה h. נסמן ב- ((h) n(t min את מספר הצמתים בעץ (h).t min לדוגמה, עבור h=1 העץ (1) min T נראה כך עבור =h העץ () min T נראה כך עבור 3=h העץ (3) min T נראה כך נספור את מספר הצמתים בעץ (h) T min לפי רמות: ברמה הראשונה יש צומת אחד ברמה השנייה יש צמתים ברמה השלישית יש צמתים וכן הלאה, עד הרמה האחרונה שבה יש 1-h צמתים. לכן נקבל את הנוסחה הבאה: n(t min (h)) = h-1 = h h 1 = 1 1 יהי T עץ -3 כלשהו בעל n צמתים וגובה h. מספר הצמתים ב- T גדול או שווה למספר הצמתים בעץ בעל מספר הצמתים הקטן ביותר מבין כל העצים בגובה.h ולכן נקבל: (h)) n n(t min נציב את הערך של ((h) n(t min שמצאנו בנוסחה הקודמת ונקבל: n n+ 1 h (n log 1 h + 1) h h log(n+ 1) = θ(log n) h= Ο(log n) ולכן: ולכן הראנו ש- לסיכום, הראנו ש- מ.שששש.לללל h= θ(log n) 75

42 -3 לאלגוריתם ההוספה לעץ דוגמאות : 1 דוגמה להלן עץ -3. נראה איך מוסיפים 4 לעץ הזה בעזרת צמתי הדמה נגיע לצומת הדמה שמתחתיו נרצה להוסיף את 4. במקרה שלנו, נגיע לצומת הדמה: 5 מאחר ולצומת הדמה הזה יש רק בנים נוסיף לו את 4 במקום המתאים, נעדכן מפתחות ונסים. העץ שיתקבל יראה כך:

43 : דוגמה להלן עץ -3. נראה איך מוסיפים 11 לעץ הזה כמו בדוגמה הקודמת בעזרת צמתי הדמה נגיע לצומת הדמה שמתחתיו נרצה להוסיף את 11. במקרה שלנו נגיע לצומת הדמה: מאחר ולצומת הזה יש כבר 3 בנים לא נוכל להוסיף לה את צומת 11. נוסיף לה את 11 כבן נוסף באופן זמני, כך שיהיו לה 4 בנים : 7,8,11,1 ואז נעביר את הבנים הימניים שלה לצומת דמה חדשה. לאחר התהליך הזה העץ יראה כך: עכשיו נחזור על התהליך כאשר אנחנו מוסיפים את צומת הדמה כבן נוסף של צומת הדמה: מאחר ולצומת יש כבר 3 בנים נוסיף לה את באופן זמני כבן נוסף כך שיהיו לה 4 בנים, ואז נעביר את הבנים הימניים שלה לצומת חדשה. מאחר הגענו לשורש, זה מקרה מיוחד בו ניצור שורש חדש לעץ. לאחר התהליך הזה העץ יראה כך: 77

44

45 -3 לאלגוריתם ההוצאה מעץ דוגמאות : 1 דוגמה להלן עץ -3. נראה איך מוציאים את 1 מהעץ הזה מאחר ולצומת 11 יש רק בנים לא נוכל להוציא את מהצומת ולהשאיר אותה עם בן אחד. במקרה זה מאחר ולצומת יש אח עם בנים נוציא ממנה את 1 ונשאיל בן אחד מהאח שלה, ונסיים. לכן, לאחר הוצאת 1 מהעץ הנ"ל יתקבל העץ הבא:

46 1: שימו לב שבאלגוריתם ההוצאה מותר להשאיל בן מאח צמוד (מימין הערה ומשמאל) אבל אסור להשאיל בן מבן דוד או מאח שאינו צמוד. (בדוגמה הנ"ל 19 הוא אח של 16 שאינו צמוד לו). : שימו לב שבאלגוריתם ההוספה אסור להשאיל בנים בכלל (גם לא הערה מאח צמוד). : דוגמה להלן עץ -3. נראה איך מוציאים את 8 מהעץ הזה מאחר ולצומת 7 יש רק בנים לא נוכל להוציא את מהצומת ולהשאיר אותה עם בן אחד. מאחר ולצומת זו אין אח צמוד עם 3 בנים לא נוכל להשאיל מאח שלה בן כפי שעשינו בדוגמה הקודמת. במקרה זה נוציא את 8 מהעץ, נעביר את האח של 8 (במקרה זה את 7) להיות בן נוסף של. לאחר התהליך הזה העץ יראה כך: 8

47 כעת מתחת הצומת 7 8 אין בנים, ונחזור על התהליך להוציא את הצומת 8 7 מאביה, דהינו מהצומת: 7 כמו במקרה הקודם, מאחר ואי אפשר להשאיל בן מאח צמוד, נעביר את הבן. לאחר התהליך הזה העץ של להיות בן נוסף של יראה כך:

48 עכשיו נמשיך להוציא את הצומת מאביה. מאחר ואביה הוא 7 שורש העץ ויש לו רק בן אחד, זה מקרה מיוחד, שבו אנחנו הופכים את האח שלה להיות שורש העץ ומסיימים. לכן, העץ הסופי שמתקבל הוא:

49 ל( אלגוריתם הוספת איבר לעץ -3. Insert(T,x) אם העץ ריק (ז"א אם (root(t)=null צור צומת דמה y, את x להיות הבן הראשון של, y עדכן root(t)=y וסיים. הוסף (1 אם בעץ ישנו איבר אחד בלבד (שאינו צומת דמה). x להיות אח של איבר זה וסיים. הוסף את ( בעזרת המפתחות של צמתי הדמה, מצא את צומת הדמה y שמתחתיו יש להוסיף את x. (צומת הדמה y נמצא רמה אחת מעל לרמת העלים). (3 יש שני בנים: הוסף את x כבן נוסף של y עדכן מפתחות צמתי הדמה וסיים. (במקום 4) אם ל- y המתאים), הוסף (באופן זמני בלבד) את - y יש כרגע 4 בנים). x כבן נוסף של y במקום המתאים (5 אם y אינו שורש העץ ) ז"א אם (root(t) y צור צומת דמה חדשה 'y העבר שני בנים מ- y ל- 'y, עדכן מפתחות צמתי הדמה, בצע y=parent(y) x=y', וחזור ל- 4. (6 7) אם y הוא שורש העץ (ז"א אם (root(t)=y צור צומת דמה חדשה 'y העבר שני בנים מ- y ל- 'y, עדכן מפתחות צמתי הדמה, צור שורש חדש לעץ (z z הוא צומת דמה), חבר את y ו- 'y כבנים של, z עדכן מפתחות צומת הדמה z וסיים. 83

50 אלגוריתם הוצאת איבר מעץ -3. Delete(T,x) אם בעץ ישנו איבר אחד בלבד (שאינו צומת דמה), איבר זה חייב להיות x. בצע root(t)=null וסיים. אם בעץ ישנם שני איברים בלבד (שאינם צומתי דמה), אחד מהם חייב להיות x והשני z חייב להיות אח של x. נסמן ב- y את האבא של x ו- z. העבר את z להיות הבן היחיד (והראשון) של y וסיים. y=parent(x) אם ל- y יש שלושה בנים: הוצא את x מקבוצת הבנים של y (הזז את שני הבנים הנותרים למקומות המתאימים), עדכן מפתחות צמתי הדמה וסיים. (1 ( (3 (4 אם y הוא שורש העץ (ז"א אם (root(t)=y יהיה x, בצע parent(z)=null,root(t)=z וסיים. z אחיו של (5 אם ל- y ישנו אח p (מימין או משמאל) שיש לו שלושה בנים: הוצא את x מקבוצת הבנים של, y העבר בן אחד מ- p ל-, y עדכן מפתחות צמתי הדמה וסיים. יהיה p אח מימין או משמאל ל- y (ל- p יש שני בנים). יהיה z האח של x. העבר את z להיות בן נוסף של p (במקום במתאים), עדכן מפתחות צמתי הדמה, בצע x=y וחזור ל- 3). (6 (7 84

51 ערימה הגדרה: עץ שלם הוא עץ שבו לכל צומת יש שני בנים, וכל העלים נמצאים באותו מרחק מהשורש. לדוגמה העץ הבא הוא עץ שלם: שלם הוא עץ שמתקבל מעץ שלם על ידי הוצאה של או כמעט הגדרה: עץ יותר צמתים באופן רציף מהחלק הימני של הרמה האחרונה בעץ. לדוגמה העץ הבא הוא עץ כמעט שלם: האיברים ברמה האחרונה בעץ כמעט שלם חייבים להופיע ברציפות משמאל עץ כמעט שלם: אינו לימין, ולכן העץ הבא לפי ההגדרות הנ"ל עץ שלם הוא עץ כמעט שלם. 85

52 ערימה H היא מבנה נתונים שבו האיברים נמצאים בעץ כמעט שלם ובנוסף כל איבר בעץ יותר "חביב" מהבנים שלו. כאשר "חביב" = גדול, הערימה נקראת ערימת מקסימום. כאשר "חביב" = קטן, הערימה נקראת ערימת מינימום. בהמשך (אם לא נאמר אחרת) כאשר נדבר על ערימה נתכוון לערימת מקסימום. לכל איבר x בערימה יש את השדות הרגילים כמו בעץ בינארי, דהינו:.left(x), right(x),parent(x),key(x),info(x) בנוסף לערימה יש שני מצביעים: root(h) - מצביע לשורש העץ. - אם העץ אינו שלם, אזי F(H) מצביע לאיבר ברמה הלפני אחרונה בעץ, שניתן להוסיף לו בן כך שלאחר ההוספה העץ יהיה עץ כמעט שלם. אם העץ שלם, אזי F(H) מצביע לעלה השמאלי ביותר ברמה האחרונה בעץ F(H) לדוגמה: F(H) F(H) 86

53 F(H) האיברים בערימה לא שומרים על הסדר כמו בעץ בינארי. החוק היחיד הוא שהאבא גדול מהבנים. לדוגמה, העץ הבא מתאר ערימה: F(H) 87

54 להלן עץ שמתאר ערימה: לאלגוריתם ההוספה לערימה דוגמה F(H) נראה איך מוסיפים 7 לערימה הנ"ל. בשלב ראשון מוסיפים את האיבר כבן של F(H) כך שלאחר ההוספה העץ יהיה עץ כמעט שלם. בדוגמה שלנו, נוסיף את 7 כבן שמאלי של 8, ונקבל: F(H) בשלב השני, אם יש צורך מעדכנים את.F(H) בדוגמה שלנו F(H) נשאר ללא שינוי. בשלב השלישי, מתחילים ל"בעבע" את האיבר שהוספנו כלפי מעלה על ידי החלפתו באביו (אם הוא גדול מאביו), עד שהאיבר מגיע למקום שבו הוא קטן מאביו (או שהוא בעצמו השורש), ואז האלגוריתם מסתיים. 88

55 לאחר צעד אחד של בעבוע, נקבל: F(H) לאחר צעד נוסף של בעבוע, נקבל: F(H) כעת 7 נמצא במקום המתאים והאלגוריתם מסתיים. 89

56 לאלגוריתם ההוצאה מערימה דוגמה כלפי מטה) (בעבוע להלן עץ שמתאר ערימה: F(H) נראה איך מוציאים 8 מהערימה הנ"ל. בשלב הראשון מוציאים את האיבר הימני ביותר ברמה האחרונה בעץ, ומציבים אותו במקום האיבר שאותו רוצים להוציא. בדוגמה שלנו נוציא את 35 ונציב אותו במקום 8. בשלב השני מעדכנים את F(H) אם יש צורך. בדוגמה שלנו, יש צורך לעדכן את F(H) והעץ שמתקבל אחרי שני שלבים אלה נראה כך: F(H) 9

57 6 בשלב השלישי מבעבעים את הצומת שהצבנו (כלפי מטה או כלפי מעלה, תלוי במצב הצומת ביחס לאביו ולבניו) עד שהצומת מגיעה למקום המתאים לה בעץ והאלגוריתם מסתיים. בבעבוע כלפי מטה מחליפים את הצומת בבן הגדול שלו. בבעבוע כלפי מעלה מחליפים את הצומת באביו. בדוגמה שלנו מבעבעים את 35 כלפי מטה. אחרי צעד אחד של בעבוע מתקבל העץ הבא: F(H) אחרי צעד נוסף של בעבוע מתקבל העץ הבא: F(H) ואחרי צעד נוסף של בעבוע מתקבל העץ הבא, והאלגוריתם מסתיים. 91

58 F(H) 9

59 לאלגוריתם ההוצאה מערימה דוגמה כלפי מעלה) (בעבוע 6 נסתכל על הערימה האחרונה, ונראה איך מוציאים את 1 מהערימה הזאת. בשלב הראשון מוציאים את 35 מהעץ ומחליפים אותו ב- 1. בשלב השני מעדכנים את F(H) אם יש צורך, בדוגמה שלנו אין צורך לעדכן את.F(H) העץ שמתקבל לאחר שני השלבים הראשונים נראה כך: F(H) 6 בשלב השלישי מבעבעים את 35 (הפעם כלפי מעלה). לאחר צעד אחד של בעבוע מתקבל העץ הבא והאלגוריתם מסתיים F(H) 93

60 אלגוריתם הוצאת השורש מערימה.Remove(H) הנחה: H היא ערימת מקסימום שאינה ריקה. אם הערימה מכילה איבר אחד בלבד עדכן root(h)=null F(H)=NULL וסיים. יהי x העלה הימני ביותר מבין העלים שברמה העמוקה ביותר בעץ. (ניתן למצוא את x בסיבוכיות זמן (n O(log בעזרת.(F(H) (1 ( הוצא את x מהערימה והצב אותו במקום שורש הערימה. (3 עדכן את F(H) (אם יש צורך). (4 אם המפתח של x גדול מהמפתחות של הבנים שלו סיים. החלף את x בבן בעל המפתח הגדול יותר מבין הבנים של x וחזור לצעד 5). אחרת (5 94

61 אלגוריתם הוצאת איבר מערימה.Delete(H,z).z הנחה: H היא ערימת מקסימום שנמצא בה האיבר יהי x העלה הימני ביותר מבין העלים שברמה העמוקה ביותר בעץ. (ניתן למצוא את x בסיבוכיות זמן (n O(log בעזרת.(F(H) ( z שבערימה. הוצא את x מהערימה והצב אותו במקום האיבר (3 עדכן את F(H) (אם יש צורך). (4 אם המפתח של x של אביו סיים. גדול מהמפתחות של הבנים שלו וקטן מהמפתח (5 אם המפתח של x אינו גדול מהמפתחות של הבנים שלו בצע: (6 החלף את x בבן בעל המפתח הגדול יותר מבין הבנים שלו. אם לאחר ההחלפה המפתח של x אינו גדול מהמפתחות של הבנים שלו חזור לצעד 6.1). אחרת סיים. (6.1 אם המפתח של x גדול מהמפתח של אביו בצע: (7 החלף את x באביו. אם לאחר ההחלפה המפתח של x מהמפתח של אביו חזור לצעד 7.1). אחרת סיים. גדול (7.1 95

62 נסתכל על הציור הבא שמתאר ערימה: ערימה בתוך מערך שיכון אנחנו נרצה לשכן את הערימה הזאת בתוך מערך. לצורך כך נמספר את אברי הערימה באופן הבא: האיבר ברמה 1 (דהינו השורש) של העץ יקבל מספר 1 האיברים ברמה של העץ יקבלו את המספרים,3 לפי הסדר משמאל לימן. האיברים ברמה 3 של העץ יקבלו את המספרים 4,5,6,7 לפי הסדר משמאל לימין וכן הלאה... לדוגמה עבור הערימה הנ"ל יתקבל המספור הבא: F(H) F(H) 96

63 כעת נשכן את האיברים של הערימה במערך A כאשר האיבר A[i] של המערך יהיה האיבר שמתאים לאיבר בעץ שקיבל מספר i במספור הנ"ל. בדוגמה שלנו יתקבל המערך הבא: עבור המערך A נשמור שני משתנים: A גודל המערך - array-size - heap-size מספר האיברים של הערימה שמשוכנים במערך. בדוגמה שלנו: array-size=1 ו- heap-size=9 למספור הנ"ל יש את התכונה הבאה: הבן השמאלי של האיבר A[i] הוא A[i] כאשר i heap-size או NULL כאשר i > heap-size הבן הימני של האיבר A[i] הוא A[i] כאשר 1+i heap-size או NULL כאשר i+1 > heap-size i i כאשר > 1 A[ האבא של האיבר A[i] הוא ] או NULL כאשר = 1.i בהמשך נאמר בקיצור שאיבר A[i] גדול מאיבר A[j] במקום לומר שהמפתח של האיבר A[i] גדול מהמפתח של האיבר.A[j] כאשר משכנים ערימה בתוך מערך, מתקיימת התכונה הבאה שנובעת מכך שבערימה המפתח של האבא גדול מהמפתחות של שני הבנים שלו: i A[i] < A[ ] לכל i, כך ש- 1<i מתקיים: נזכיר שבהצגת אלגוריתם ההוספה לערימה, הגדרנו פעולת בעבוע של איבר כלפי מטה, כפעולה שמחליפה את האיבר באיבר הגדול יותר מבין שני בניו וחוזר חלילה, כל עוד האיבר אינו גדול משני הבנים שלו. התוכנית הבאה מבצעת בעבוע של איבר A[i] במערך כלפי מטה. 97

64 heapify (A, i) if ( i > heap-size ) { return } if ( i == heap-size ) { x = max ( A[i], A[i] ) } if ( i < heap-size ) { x = max ( A[i], A[i],A[i+1] ) } if ( x == A[i] ) {return } if ( x == A[i]) { swap ( A, i, i ) heapify(a,i) } if ( x == A[i+1]) { swap ( A, i, i+1 ) heapify(a,i+1) } swap (A, i, j) temp=a[i] A[i]=A[j] A[j]=temp נסמן ב- h(i) את גובה האיבר A[i] ב-.heap טענה: סיבוכיות זמן הריצה של התוכנית heapify(a,i) היא.θ(h(i)) מאחר ו- (1)h מציין את גובה הערימה, ובערימה מתקיים h=θ(logn) כאשר n מציין את מספר האיברים בערימה, (דהינו,(n=heap-size אזי מהטענה הנ"ל נובע שסיבוכיות זמן הריצה של התוכנית heapify(a,1) היא.θ(logn) 98

65 לאלגוריתם בנית ערימה דוגמה נסתכל על מערך A שמכיל 8 איברים בסדר כלשהו: המטרה: לשנות את סדר האיברים במערך A כך שהוא יכיל ערימה. במילים אחרות, צריך לשנות את סדר האיברים במערך A כך שיתקיים כלל הערימה: i A[i] < A[ ] לכל i, כך ש- 1<i מתקיים: 1 1 הפתרון: עבור i בין 1 ל- 4 נבצע: heapify(a,i) בסדר הפוך, דהינו בהתחלה נבצע heapify(a,4) אחר כך נבצע heapify(a,3) וכן הלאה... בסוף התהליך המערך יכיל ערימה. להלן תאור מפורט של התהליך. העץ המתאים למערך הנ"ל נראה כך:

66 לאחר ביצוע heapify(a,4) העץ יראה כך: והמערך המתאים לו נראה כך: לאחר ביצוע heapify(a,3) העץ יראה כך: והמערך המתאים לו נראה כך:

67 לאחר ביצוע heapify(a,) העץ יראה כך: והמערך המתאים לו נראה כך: לאחר ביצוע heapify(a,1) העץ יראה כך: והמערך המתאים לו נראה כך:

68 בנית ערימה אלגוריתם הפסיאודו קוד של אלגוריתם בנית ערימה נראה כך: Build-Heap(A) n = length(a) heap-size = n n for i = to 1 do Heapify(A,i) done טענה: סיבוכיות זמן הריצה של התוכנית Build-Heap(A) עבור מערך קלט A בגודל n היא.θ(n) הוכחה x 1 x x= 1 = 1 x x k x= k = (1 k ) = 1 ידוע שעבור < 1 k < מתקיים: בפרט עבור = k מתקיים: 1 1 = = 1 נסמן ב- n את גודל המערך A. נסמן ב- h(i) את גובה האיבר A[i] בעץ המתאים למערך A. נסמן ב- T(n) את זמן הריצה של התוכנית Build-Heap(A) עבור מערך קלט A בגודל n. כל קריאה ל- Heapify(A,i) מתבצעת בסיבוכיות זמן θ(h(i)) ולכן לוקחת לכל היותר פעולות. לכן נקבל: C h (i) i = n n T (n ) C + C1 + C h (i) i= 1 נסמן ב- h את גובה העץ המתאים למערך A. נזכיר שרמה של צומת בעץ שווה למספר הצמתים במסלול שמחבר בין הצומת לשורש העץ. 1

69 ברמה 1 בעץ יש צומת אחד שגובהו h ברמה בעץ ישנם צמתים שגובה כל אחד מהם הוא לכל היותר 1-h ברמה 3 בעץ ישנם צמתים שגובה כל אחד מהם הוא לכל היותר -h h-(i-1) צמתים שגובה כל אחד מהם הוא לכל היותר i 1 ברמה i בעץ ישנם... ברמה 1-h בעץ ישנם h צמתים שגובה כל אחד מהם הוא לכל היותר h 1 ברמה h בעץ ישנם לכל היותר צמתים שגובה כל אחד מהם הוא 1. i = n h (i) = i= 1 h (1) + h () + h (3)... + h (n ) לכן נקבל ש- 1 h + (h 1) + (h ) h + h 1 1= = h 1 1+ h + h (h ) + (h 1) + 1 h = = h h h + h 1 h 1 + h h h = h = h+ 1 i= n h+ 1 h (i) i= 1 i= n i= n h+ 1 C h (i) = C h (i) C i= 1 i= 1 לסיכום קיבלנו ש- ולכן, ובהצבה באי השוויון הקודם נקבל: T (n ) i= n n n h+ 1 C + C1 + C h (i) C + C1 + C i= 1 עזר: טענת יהיה T עץ כמעט שלם בעל n צמתים וגובה h, אזי h 1+ log (n + 1) 13

70 טענת העזר: הוכחת נספור את האיברים בעץ T לפי רמות עד הרמה לפני האחרונה ברמה הראשונה יש 1 איבר ברמה השנייה יש איברים איברים ברמה השלישית יש... ברמה ה- 1-h (שהיא הרמה הלפני אחרונה) יש h איברים מאחר ולא ספרנו את האיברים ברמה האחרונה מספר האיברים הכולל בעץ n קטן ממספר האיברים ברמות 1 עד 1-h ולכן: n h = h = h 1 1 n h 1 1 n + 1 h 1 log (n + 1) h 1 1+ log (n + 1) h h 1+ log (n + 1) מ.שששש.לללל העזר) (טענת T (n ) C + C1 נחזור לנוסחה האחרונה שקיבלנו ונשתמש בטענת העזר: n h+ 1 n 1+ log (n+ 1) C C + C1 + C = = C + C 1 n + C n + C log (n+ 1) = C + C1 (n + 1) = θ (n ) T (n ) n ולכן הראנו ש-.T(n)=О(n) מאחר ונכנסים ללולאה לפחות פעמים, נקבל ש- = θ(n ) ולכן הראנו ש-.T(n)=Ω(n) לסיכום נקבל ש-.T(n)=θ(n) מ.שששש.לללל n 14

71 המיון בעית נתון: מערך A מטרה: סידור האיברים במערך A לפי מפתחות בסדר עולה. לדוגמא, אם נתון המערך A הבא: לאחר המיון, המערך A נראה כך: בעית המיון בעזרת עץ AVL פתרון הפתרון יתבצע באופן הבא, ניצור תחילה עץ AVL ונעביר אליו את כל אברי המערך אחד אחד. לאחר מכן נבצע סריקת inorder של העץ ונציב את האיברים שלו לפי סדר הסריקה לתוך המערך A. לדוגמא, אחרי צעד 1 עץ ה- AVL יראה כך: אחרי צעד עץ ה- AVL יראה כך:

72 אחרי צעד 3 עץ ה- AVL נראה כך: אחרי צעד 4 עץ ה- AVL נראה כך: וכן הלאה, אחרי צעד 8 עץ ה- AVL נראה כך: כעת נשכן את האיברים שבעץ במערך לפי סדר.inorder אחרי הצעד הראשון המערך נראה כך:

73 אחרי הצעד השני המערך נראה כך: אחרי הצעד השלישי המערך נראה כך: וכן הלאה עד שלבסוף אחרי הצעד השמיני המערך נראה כך:

74 להלן, הפסיאודו קוד של אלגוריתם המיון בעזרת עץ :AVL sort(a) T=create-empty-AVL-tree() for (i=1 ; i n; i++) { insert-avl(t,a[i]) } i=1 /* i is a global variable */ inorder(t,a) הפונקציה inorder(t,a) משתמשת במשתנה גלובלי i והפסיאודו-קוד שלה הוא: inorder(t,a) x=root(t) if (x==null) { return } inorder(t left(x),a) A[i]=x i++ inorder(t right(x),a) טענה: סיבוכיות אלגוריתם המיון בעזרת עץ היא.θ(nlogn) הוכחה: בלולאה הראשונה, כל צעד לוקח לכל היותר,c logn על סמך העובדה שסיבוכיות זמן הריצה של אלגוריתם ההוספה לעץ AVL היא.θ(logn) על הלולאה חוזרים n פעמים לכן סה"כ הלולאה הראשונה לוקחת לכל היותר c nlogn פעולות. באופן דומה לניתוח של סריקת inorder אפשר להראות שסיבוכיות זמן הריצה של פונקצית העזר inorder(t,a) היא θ(n) ולכן לוקחת לכל היותר c n 1 פעולות. לכן נקבל ש- T (n ) c n log n + c1n = θ(n log T (n ) = Ο (n log n ) n ) ומכאן נובע ש- n n להוכחת הכוון השני, n n הוספת האיבר A לעץ לוקחת לפחות log פעולות log פעולות A לעץ לוקחת לפחות + 1 הוספת האיבר... n [ n] הוספת האיבר לעץ לוקחת לפחות log פעולות. A 18

75 סה"כ מספר הפעולות של הלולאה הראשונה הוא לפחות ולכן, ולכן הראנו ש-.T(n)=Ω(n logn) לסיכום נקבל ש-.T(n)=θ(n logn) מ.שששש.לללל n log n T (n ) n log n = θ(n log n ) של תוכנית מוגדרת כהערכה (במונחים של θ) של מספר סיבוכיות מקום ניתוח תאי הזכרון שהתוכנית צורכת בנוסף על מבני הנתונים והמשתנים שהועברו לתוכנית כפרמטרים. לדוגמה, סיבוכיות המקום של תוכנית המיון בעזרת עץ AVL הנ"ל היא,θ(n) מאחר והיא משתמשת במבנה נוסף של עץ,AVL ועץ AVL (כמו כל עץ בינארי) ניתן לאיחסון על ידי c n תאי זכרון, מאחר ולכל איבר x בעץ מספיק לשמור את השדות key(x),info(x),left(x),right(x),parent(x) שהזכרון הנתפש על ידם הוא קבוע c שאינו תלוי ב- n. 19

76 בעית המיון בעזרת ערימה פתרון נציג את הפתרון בעזרת דוגמה. נניח שנתון לנו המערך A הבא: בשלב הראשון, נשנה את סדר האיברים במערך כך שהוא יכיל ערימה, על ידי אלגוריתם בנית ערימה שתיארנו קודם. התוצאה שנקבל היא: heap-size 1 8 כל האיברים במערך הנ"ל שיכים לערימה, ולכן עבור המערך הנ"ל מתקיים,heap-size=8 והערימה המתאימה לו נראית כך:

77 בשלב הבא נחליף בין [1]A לבין האיבר האחרון בערימה,A[n] 1 נקטין את heap-size ב-, 1 התוצאה נראית כך: נשים לב האיבר 8 נמצא במקום המתאים לו במערך הממוין הסופי. העץ המתאים למערך הנ"ל (שמכיל 7 איברים כי (heap-size=7 נראה כך: heap-size העץ אינו מכיל ערימה חוקית, בגלל האיבר 3. כדי להפוך אותו לערימה חוקית נבעבע את האיבר 3 כלפי מטה. לאחר בעבוע האיבר 3 (את הבעבוע נבצע ישירות על המערך כפי שתיארנו קודם) יתקבל העץ הבא:

78 המערך שמתאים לעץ הנ"ל נראה כך: heap-size כעת נחזור על התהליך פעם נוספת, נחליף בין [1]A לאיבר האחרון בערימה, שעכשיו הוא A[n-1], נקטין heap-size ב- 1 והתוצאה נראית כך: heap-size נשים לב שאיברים 7,8 נמצאים במקום המתאים להם במערך הממוין הסופי. העץ המתאים למערך הנ"ל (שמכיל 6 איברים כי (heap-size=6 נראה כך: נבעבע את האיבר 4 כלפי מטה ונקבל את העץ הבא:

79 המערך שמתאים לעץ הנ"ל נראה כך: heap-size נחזור על התהליך הנ"ל 5 פעמים נוספות עד שנקבל את התוצאה: heap-size כעת המערך ממוין ואין צורך לחזור על התהליך פעם נוספת. הפסיאודו קוד של אלגוריתם המיון בעזרת ערימה נראה כך: heap-sort(a) n = length(a) build-heap(a) for (i=n ; i ; i--) { swap (A[1],A[i]) heap-size = heap-size - 1 heapify(a,1) } טענה: סיבוכיות זמן הריצה של אלגוריתם heap-sort(a) עבור מערך קלט A בגודל n היא.θ(n logn) הוכחה: הראנו קודם שהתוכנית build-heap(a) לוקח לכל היותר.c n הראנו גם שכל קריאה ל-( heapify(a,1 לוקחת לכל היותר (1)h 1 c. מאחר וגובה הצומת [1]A הוא לכל היותר c logn נקבל שכל קריאה ל-( heapify(a,1 לוקחת לכל היותר.c1 c logn מאחר ונכנסים ללולאה לכל היותר 1-n פעמים נקבל: T (n ) c n + c c n log n = θ(n 1 log n ) ולכן הראינו ש- T(n)=O(n logn) 113

80 n log n log n log להוכחת הכוון השני, הקריאה ל- heapify(a,1) כאשר גודל הערימה הוא n לוקחת לפחות פעולות. הקריאה ל- heapify(a,1) כאשר גודל הערימה הוא 1-n לוקחת לפחות פעולות.... הקריאה ל- heapify(a,1) כאשר גודל הערימה הוא לוקחת לפחות פעולות. n n log n סה"כ מספר הפעולות של הלולאה הוא לפחות ולכן, ולכן הראנו ש-.T(n)=Ω(n logn) לסיכום נקבל ש-.T(n)=θ(n logn) T (n ) מ.שששש.לללל n log n = θ(n log n ) מאחר והתוכנית heap-sort(a) לא משתמשת במבנה עזר של משתנים בלבד), סיבוכיות המקום שלה היא (1)θ. (אלא במספר קבוע 114

81 נתונים לדרישות מבנה התאמת הצע מבנה נתונים העונה לדרישות הבאות (כאשר n מציין את מספר האיברים במבנה הנתונים): - כאשר מבנה הנתונים ריק ניתן להוסיף לו n איברים (כפעולה אחת) בזמן.O(n) - זמן הריצה של פעולת חיפוש איבר במבנה הנתונים הוא O(n) במקרה W.C אבל על לפחות n/logn מהאיברים זמן הריצה של פעולת חיפוש הוא O(logn) - זמני הריצה של הוספה והוצאה של איברים למבני הנתונים אינם מוגבלים..1 תאר באופן מילולי כיצד מתבצעת כל אחת מהפעולות במבנה הנתונים שהצעת. (אין צורך לפרט מחדש אלגוריתמים שהוצגו בכיתה).. הצע מבנה נתונים שאיבריו הם מספרים טבעיים והוא עונה לדרישות הבאות (כאשר n מציין את מספר האיברים במבנה הנתונים). - הוספת איבר למבנה מבוצעת בזמן O(logn) - מחיקת איבר מהמבנה מבוצעת בזמן O(logn) - חיפוש איבר במבנה מבוצע בזמן O(logn) - מציאת זוג מספרים (כלשהם) במבנה x,y שמקימים x = 3y (אם קיימים כאלו) מבוצע בזמן (1)O. תאר באופן מילולי כיצד מתבצעת כל אחת מהפעולות במבנה הנתונים שהצעת. (אין צורך לפרט מחדש אלגוריתמים שהוצגו בכיתה). 3. הצע מבנה נתונים עבור קבוצה S של מספרים שלמים (עם חזרות) התומך בפעולות הבאות (כאשר n מציין את מספר האיברים השונים בקבוצה S): - insert(x) הוספת מופע של מספר x לקבוצה S (במידה והמספר x לא קיים ב- S הוא מתוסף לקבוצה) מבוצעת בזמן O(logn) - delete(x) מחיקת מופע של מספר x מהקבוצה S (במידה והמספר x מופיע רק פעם אחת בקבוצה S הוא מוצא מ- S) מבוצעת בזמן.O(logn) - multiplicity(x) מחזירה את הריבוי של x (כלומר את מספר המופעים של x ב- S) בזמן.O(logn) (1)O. בזמן S מחזירה את המספר המקסימלי ב- max_val() - (1)O. בזמן S מחזירה את הריבוי המקסימלי ב- max_mull() - תאר באופן מילולי כיצד מתבצעת כל אחת מהפעולות במבנה הנתונים שהצעת. (אין צורך לפרט מחדש אלגוריתמים שהוצגו בכיתה). 115

82 4. תאר מבנה נתונים התומך בפעולות הבאות בסיבוכיות הנדרשת. תאר באופן מילולי את האלגוריתמים למימוש הפעולות ונתח את זמן הריצה שלהם. ניתן להסתמך על אלגוריתמים שהוצגו בכיתה. init בהינתן רשימה לא ממוינת של N מספרים, אתחל את המבנה בזמן.O(NlogN).O(logN) למבנה בזמן x הכנס איבר חדש insert(x) (1)O. החזר ערך מינימלי/מכסימלי במבנה בזמן find_min, find_max /(1+N) החזר את הערך החציון במבנה ) את ערך ה- find_mid בגודלו אם N אי-זוגי או את הערך ה- /N בגודלו אם N זוגי) בזמן.O(1) del_max del_min, מחק ערך מינימלי/מכסימלי מהמבנה בזמן.O(logN).O(logN) מחק את הערך החציון מהמבנה בזמן del_mid.o(logn) בזמן בגודלו מצא את האיבר ה- k find(k) 5. נתונה קבוצה D של n איברים כך שכל איבר x בקבוצה מכיל את השדות הבאים: id(x) הינו מספר שמזהה את x באופן יחיד D מספר איברים שונים ב- (יתכנו. x הינו מספר שמכיל את המפתח של key(x) עם מפתח זהה). x. אינפורמציה נוספת (כלשהי) על האיבר info(x) הנח כי מספר המפתחות השונים ב- D הוא O(logn) א) הצע מבנה נתונים עבור הקבוצה D התומך בפעולות הבאות בסיבוכיות הנדרשת: O(log logn ) בזמן D לקבוצה x הוספת איבר insert(x) D מהקבוצה k מחיקת איבר כלשהו בעל מפתח delete(k) בזמן ) logn O(log O(log logn ) בזמן D בקבוצה k מציאת איבר כלשהו בעל מפתח search(k) תאר באופן מילולי את האלגוריתמים למימוש הפעולות ונתח את זמן הריצה שלהם. ניתן להסתמך על אלגוריתמים שהוצגו בכיתה. ב) הצע מבנה נתונים עבור הקבוצה D התומך בפעולות הבאות בסיבוכיות הנדרשת: O(logn ) בזמן D לקבוצה x הוספת איבר insert(x) (id) והמזהה היחיד שלו (k) בהינתן מפתח האיבר search_and_delete(k,id) חיפוש האיבר ומחיקתו מהקבוצה D בזמן ) O(logn O(log logn ) בזמן D בקבוצה k מציאת איבר כלשהו בעל מפתח search(k) תאר באופן מילולי את האלגוריתמים למימוש הפעולות ונתח זמן ריצה שלהם. ניתן להסתמך על אלגוריתמים שהוצגו בכיתה. 116

83 הצע מבנה נתונים עבור קבוצה S של מספרים שלמים (עם חזרות) התומך שנמצאים השונים בפעולות הבאות (כאשר n הוא חסם על מספר האיברים ב- S בו זמנית):.6 init(s) אתחל את מבנה הנתונים בזמן O(n) במקרה הגרוע. delete(x) מחיקת מופע של מספר x מהקבוצה S (במידה והמספר x מופיע רק פעם אחת בקבוצה S הוא מוצא מ- S) בזמן (1)O בממוצע. multiplicity(x) מחזירה את הריבוי של x (כלומר את מספר המופעים של x ב- S) בזמן (1)O בממוצע. Print_same_mul_as(x) מדפיסה את מפתחות כל האיברים שהריבוי שלהם שווה לריבוי של x, בזמן (1)O בממוצע + O(k) במקרה הגרוע, כאשר k מציין את מספר האיברים שהריבוי שלהם זהה לריבוי של x תאר באופן מילולי כיצד מתבצעת כל אחת מהפעולות במבנה הנתונים שהצעת. (אין צורך לפרט מחדש אלגוריתמים שהוצגו בכיתה). 7. לכל מספר טבעי k נגדיר את bin(n,k) כיצוג המספר k כמספר בינארי באורך n. לדוגמה, bin(5,9) הנו המספר הבינארי 11. הצע/הציעי מבנה נתונים שמכיל מספרים טבעיים (ללא חזרות) ותומך בפעולות הבאות, כאשר n מיצג את אורך הייצוג הבינארי של המספרים ו- N מיצג את מספר המספרים שבמבנה: בהינתן מספר טבעי k וייצוגו הבינארי באורך n, הוספת המספר למבנה.O(max{logN,nlogn}) בזמן בהינתן מספר טבעי k חיפוש המספר במבנה בזמן.O(logN) בהינתן מספר טבעי k חיפוש המספר והוצאתו מהמבנה במידה והוא קיים בזמן.O(max{logN,n}) בהינתן אינדקס i מציאת מספר המספרים במבנה הנתונים שהביט ה- i שלהם דלוק בזמן (1)O. מציאת סה"כ מספר הביטים הדלוקים בכל המספרים במבנה הנתונים בזמן (1)O. ואינדקס i מציאת מספר בהינתן מספר טבעי k (ללא ייצוגו הבינארי) הביטים הדלוקים בעלי אינדקס קטן מ- i בייצוג הבינארי של k בזמן.O(log(max{N,n})) תאר/י באופן מילולי איך מתבצעת כל אחת מהפעולות הנ"ל. 117

84 להלן פונקציה למציאת האיבר ה- k בעץ -3 שבו יש בנוסף לשדות הרגילים שדה size(x) לכל צומת x שמכיל את מספר העלים שנמצאים בתת העץ של T ששורשו x. (דהינו בתת העץ T). x סיבוכיות זמן הריצה: θ(logn) find-element(t,k) /* find k-th element of a rank -3 tree T */ x=root(t) if (x==null size(x) < k) { return NULL } while true { if (first(x)=null) {return x} /* x is a leaf, return it */ if (size(first(x)) k) {x=first(x) continue } if (size(first(x)) + size(second(x)) k) { k=k-size(first(x)) x=second(x) continue } k=k-(size(first(x)) + size(second(x))) x=third(x) } 118

85 להלן פונקציה למציאת מספר האיברים שהמפתח שלהם קטן מ- k בעץ -3 שבו יש בנוסף לשדות הרגילים שדה size(x) לכל צומת x שמכיל את מספר העלים שנמצאים בתת העץ של T ששורשו x. (דהינו בתת העץ T). x סיבוכיות זמן הריצה: θ(logn) find-munber-of-elements(t,k) /* find the number of elements having a key less than k, of a rank -3 tree T */ x=root(t) if (x==null) return count= while true { if (first(x)=null) {return count+1} /* x is a leaf, return count is added for the leaf itself */ if (s(x) k) {x=first(x) continue } if (third(x)==null s3(x) k) { count=count+size(first(x)) x=second(x) continue } count=count+size(first(x))+size(second(x)) x=third(x) } 119

עצי 2-3 תזכורת: בנים. דוגמאות: Chapter 19: B trees ( ) Chapter 15: Augmenting data structures ( )

עצי 2-3 תזכורת: בנים. דוגמאות: Chapter 19: B trees ( ) Chapter 15: Augmenting data structures ( ) עצים מאוזנים Lecture 5 of Geiger & Itai s slide brochure www.cs.technion.ac.il/~dang/courseds תזכורת: משפחת עצים נקראת מאוזנת אם ( h. = (log עצי -3 ועצי דרגות עצי AVL הם עצים מאוזנים. עצי 3- מהווים דוגמא

Διαβάστε περισσότερα

דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא:

דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא: של שאלות מבחינות פתרונות.1 שאלהזוהופיעהבמבחןמועדג 01 דוגמה: יהי T עץ בינארי כפי שמתואר בציור הבא: הגדרות: עבור צומת בעץ בינארי T נסמן ב- T את תת העץ של T ששורשו. (תת העץ הזה כולל את ). נגדיר את תת העץ

Διαβάστε περισσότερα

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם תזכורת: פולינום ממעלה או מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה p f ( m i ) = p m1 m5 תרגיל: נתון עבור x] f ( x) Z[ ראשוני שקיימים 5 מספרים שלמים שונים שעבורם p x f ( x ) f ( ) = נניח בשלילה ש הוא

Διαβάστε περισσότερα

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p; מבני נתונים פתרונות לסט שאלות דומה לשאלות בנושאים () זמני ריצה של פונקציות רקורסיביות () מיונים השאלות פתרו את נוסחאות הנסיגה בסעיפים א-ג על ידי הצבה חוזרת T() כאשר = T() = T( ) + log T() = T() כאשר =

Διαβάστε περισσότερα

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur פתרון תרגיל --- 5 מרחבים וקטורים דוגמאות למרחבים וקטורים שונים מושגים בסיסיים: תת מרחב צירוף לינארי x+ y+ z = : R ) בכל סעיף בדקו האם הוא תת מרחב של א } = z = {( x y z) R x+ y+ הוא אוסף הפתרונות של המערכת

Διαβάστε περισσότερα

חורף תש''ע פתרון בחינה סופית מועד א'

חורף תש''ע פתרון בחינה סופית מועד א' מד''ח 4 - חורף תש''ע פתרון בחינה סופית מועד א' ( u) u u u < < שאלה : נתונה המד''ח הבאה: א) ב) ג) לכל אחד מן התנאים המצורפים בדקו האם קיים פתרון יחיד אינסוף פתרונות או אף פתרון אם קיים פתרון אחד או יותר

Διαβάστε περισσότερα

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשעד פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. לכל אחת מן הפונקציות הבאות, קבעו אם היא חח"ע ואם היא על (הקבוצה המתאימה) (א) 3} {1, 2, 3} {1, 2, : f כאשר 1 } 1, 3, 3, 3, { 2, = f לא חח"ע: לדוגמה

Διαβάστε περισσότερα

ל הזכויות שמורות לדפנה וסטרייך

ל הזכויות שמורות לדפנה וסטרייך מרובע שכל זוג צלעות נגדיות בו שוות זו לזו נקרא h באיור שלעיל, הצלעות ו- הן צלעות נגדיות ומתקיים, וכן הצלעות ו- הן צלעות נגדיות ומתקיים. תכונות ה כל שתי זוויות נגדיות שוות זו לזו. 1. כל שתי צלעות נגדיות

Διαβάστε περισσότερα

מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים

מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים מבני נתונים ואלגוריתמים תרגול #3 נושאים: תור קדימויות/ערימה, עצים חזרה מבנה נתונים אמצעי לאחסון נתונים במחשב. יש הרבה סוגים שונים, וצריך להשתמש במבנה שהכי מתאים לבעיה שלנו מבחינת שימוש בנתונים הוספה, מחיקה

Διαβάστε περισσότερα

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים מבוא: קבוצות מיוחדות של מספרים ממשיים קבוצות של מספרים ממשיים צעד ראשון להצטיינות קבוצה היא אוסף של עצמים הנקראים האיברים של הקבוצה אנו נתמקד בקבוצות של מספרים ממשיים בדרך כלל מסמנים את הקבוצה באות גדולה

Διαβάστε περισσότερα

תרגיל 13 משפטי רול ולגראנז הערות

תרגיל 13 משפטי רול ולגראנז הערות Mthemtics, Summer 20 / Exercise 3 Notes תרגיל 3 משפטי רול ולגראנז הערות. האם קיים פתרון למשוואה + x e x = בקרן )?(0, (רמז: ביחרו x,f (x) = e x הניחו שיש פתרון בקרן, השתמשו במשפט רול והגיעו לסתירה!) פתרון

Διαβάστε περισσότερα

מבני נתונים ויעילות אלגוריתמים

מבני נתונים ויעילות אלגוריתמים חידה לחימום בסל מקש יש צמר. כדורי 00 שני שחקנים משחקים בתורות: כל שחקן, בתורו, צריך להוציא כמות כלשהי של כדורי צמר מהסל לפחות כדור אחד, אך לא יותר ממחצית מכמות כדורי הצמר שבסל. מי שלא יכול לעשות מהלך (מתי

Διαβάστε περισσότερα

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( ) פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד a d U c M ( יהי b (R) a b e ל (R M ( (אין צורך להוכיח). מצאו קבוצה פורשת ל. U בדקו ש - U מהווה תת מרחב ש a d U M (R) Sp,,, c a e

Διαβάστε περισσότερα

מיונים א': מיון (Sorting) HeapSort. QuickSort תור עדיפויות / ערימה

מיונים א': מיון (Sorting) HeapSort. QuickSort תור עדיפויות / ערימה מיון (Sorting) void BubbleSort(int* A, int n){ for (i = ; i < n-; i++) for (j = n-; j >= i; j--) if ( a[j] > a[j+]) swap(&a[j], &a[j+]); מערך בן מספרים. קלט: מערך ובו המספרים מאוחסנים בסדר עולה (או יורד).

Διαβάστε περισσότερα

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ משוואות רקורסיביות הגדרה: רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים למשל: T = Θ 1 if = 1 T + Θ if > 1 יונתן יניב, דוד וייץ 1 דוגמא נסתכל על האלגוריתם הבא למציאת

Διαβάστε περισσότερα

gcd 24,15 = 3 3 =

gcd 24,15 = 3 3 = מחלק משותף מקסימאלי משפט אם gcd a, b = g Z אז קיימים x, y שלמים כך ש.g = xa + yb במלים אחרות, אם ה כך ש.gcd a, b = xa + yb gcd,a b של שני משתנים הוא מספר שלם, אז קיימים שני מקדמים שלמים כאלה gcd 4,15 =

Διαβάστε περισσότερα

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

( )( ) ( ) f : B C היא פונקציה חחע ועל מכיוון שהיא מוגדרת עי. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חחע אז ועל פי הגדרת הרצאה 7 יהיו :, : C פונקציות, אז : C חח"ע ו חח"ע,אז א אם על ו על,אז ב אם ( על פי הגדרת ההרכבה )( x ) = ( )( x x, כךש ) x א יהיו = ( x ) x חח"ע נקבל ש מכיוון ש חח"ע נקבל ש מכיוון ש ( b) = c כך ש b ( ) (

Διαβάστε περισσότερα

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור הרצאה מס' 1. תורת הקבוצות. מושגי יסוד בתורת הקבוצות.. 1.1 הקבוצה ואיברי הקבוצות. המושג קבוצה הוא מושג בסיסי במתמטיקה. אין מושגים בסיסים יותר, אשר באמצעותם הגדרתו מתאפשרת. הניסיון והאינטואיציה עוזרים להבין

Διαβάστε περισσότερα

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin( א. s in(0 c os(0 s in(60 c os(0 s in(0 c os(0 s in(0 c os(0 s in(0 0 s in(70 מתאים לזהות של cos(θsin(φ : s in(θ φ s in(θcos(φ sin ( π cot ( π cos ( 4πtan ( 4π sin ( π cos ( π sin ( π cos ( 4π sin ( 4π

Διαβάστε περισσότερα

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשעו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים: לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( 2016 2015 )............................................................................................................. חלק ראשון: שאלות שאינן להגשה.1

Διαβάστε περισσότερα

תרגול פעולות מומצאות 3

תרגול פעולות מומצאות 3 תרגול פעולות מומצאות. ^ = ^ הפעולה החשבונית סמן את הביטוי הגדול ביותר:. ^ ^ ^ π ^ הפעולה החשבונית c) #(,, מחשבת את ממוצע המספרים בסוגריים.. מהי תוצאת הפעולה (.7,.0,.)#....0 הפעולה החשבונית משמשת חנות גדולה

Διαβάστε περισσότερα

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) דף פתרונות 6 נושא: תחשיב הפסוקים: הפונקציה,val גרירה לוגית, שקילות לוגית 1. כיתבו טבלאות אמת לפסוקים הבאים: (ג) r)).((p q) r) ((p r) (q p q r (p

Διαβάστε περισσότερα

מבני נתונים ויעילות אלגוריתמים

מבני נתונים ויעילות אלגוריתמים מבני נתונים ויעילות אלגוריתמים (8..05). טענה אודות סדר גודל. log טענה: מתקיים Θ(log) (!) = הוכחה: ברור שמתקיים: 3 4... 4 4 4... 43 פעמים במילים אחרות:! נוציא לוגריתם משני האגפים: log(!) log( ) log(a b

Διαβάστε περισσότερα

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא

מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא מבני נתונים 08a תרגול 8 14/2/2008 המשך ערמות ליאור שפירא ערמות פיבונאצ'י Operation Linked List Binary Heap Binomial Heap Fibonacci Heap Relaxed Heap make-heap 1 1 1 1 1 is-empty 1 1 1 1 1 insert 1 log

Διαβάστε περισσότερα

Logic and Set Theory for Comp. Sci.

Logic and Set Theory for Comp. Sci. 234293 - Logic and Set Theory for Comp. Sci. Spring 2008 Moed A Final [partial] solution Slava Koyfman, 2009. 1 שאלה 1 לא נכון. דוגמא נגדית מפורשת: יהיו } 2,(p 1 p 2 ) (p 2 p 1 ).Σ 2 = {p 2 p 1 },Σ 1 =

Διαβάστε περισσότερα

מבני נתונים (234218) 1

מבני נתונים (234218) 1 מבני נתונים (234218) 1 חומר עזר לבחינה 13 בספטמבר 2016 שימו לב: מותר לצטט טענות המופיעות בדף זה ללא הוכחה. כל טענה אחרת, שאינה מופיעה באופן מפורש, יש לנמק באופן מלא. נימוקים מהצורה "בדומה לטענה שבחומר

Διαβάστε περισσότερα

פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה.

פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה. פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה. 16 במאי 2010 נסמן את מחלקת הצמידות של איבר בחבורה G על ידי } g.[] { y : g G, y g כעת נניח כי [y] [] עבור שני איברים, y G ונוכיח כי [y].[] מאחר והחיתוך

Διαβάστε περισσότερα

תאריך הבחינה: שם המרצה: רפי כהן שם המתרגל: יסודות מבני נתונים שם הקורס:

תאריך הבחינה: שם המרצה: רפי כהן שם המתרגל: יסודות מבני נתונים שם הקורס: תאריך הבחינה:... נובה פנדינה שם המרצה: רפי כהן שם המתרגל: יסודות מבני נתונים שם הקורס:..00 מספר הקורס:. סמסטר: א' מועד: שנה: שלוש שעות משך הבחינה: ללא חומר עזר חומר עזר: ב' הנחיות חשובות: רצוי לפתור את

Διαβάστε περισσότερα

תרגול מס' 6 פתרון מערכת משוואות ליניארית

תרגול מס' 6 פתרון מערכת משוואות ליניארית אנליזה נומרית 0211 סתיו - תרגול מס' 6 פתרון מערכת משוואות ליניארית נרצה לפתור את מערכת המשוואות יהי פתרון מקורב של נגדיר את השארית: ואת השגיאה: שאלה 1: נתונה מערכת המשוואות הבאה: הערך את השגיאה היחסית

Διαβάστε περισσότερα

השאלות ידי מצביעים לילדים.

השאלות ידי מצביעים לילדים. מבני נתונים פתרונות לסט שאלות דומה לשאלות מתרגיל 4 השאלות 1. כתבו פונקציה לא רקורסיבית שמדפיסה ב- Postorder את כל הנתונים המאוכסנים בעץ בינארי T. הפונקציה אינה צריכה להיות תלויה במימוש העץ T. הניחו שנתון

Διαβάστε περισσότερα

אלגברה ליניארית (1) - תרגיל 6

אלגברה ליניארית (1) - תרגיל 6 אלגברה ליניארית (1) - תרגיל 6 התרגיל להגשה עד יום חמישי (12.12.14) בשעה 16:00 בתא המתאים בבניין מתמטיקה. נא לא לשכוח פתקית סימון. 1. עבור כל אחד מתת המרחבים הבאים, מצאו בסיס ואת המימד: (א) 3)} (0, 6, 3,,

Διαβάστε περισσότερα

מבני נתונים עצים שיעור 7

מבני נתונים עצים שיעור 7 בס ד מבני נתונים עצים שיעור 7 שי גולן כ ח בניסן, תשע ו 6 במאי 2016 תקציר בתרגול זה נתחיל לדון בעצים. נגדיר עצים כלליים ועצים בינאריים, ונציג את ההגדרות הבסיסיות בתחום. נתרגל הוכחת תכונות של עצים באמצעות

Διαβάστε περισσότερα

2 יח"ל ) השלמה ל - 5 יח"ל) (50 נקודות) מעבר חוקי, ו-'שקר' אחרת.

2 יחל ) השלמה ל - 5 יחל) (50 נקודות) מעבר חוקי, ו-'שקר' אחרת. 1 6 מאי, 2004 מועד הבחינה: 2 יח"ל ) השלמה ל - 5 יח"ל) פרק ראשון (50 נקודות) :1 Ï (מקור: שירלי רוזנברג כהן) נגדיר טיפוס נתונים חדש בשם תלת-מחסנית, כמבנה המכיל 3 מחסניות S3. S2, S1, נגדיר את הפעולות הבאות

Διαβάστε περισσότερα

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשעו (2016) לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)............................................................................................................. חלק ראשון: שאלות שאינן להגשה 1. עבור

Διαβάστε περισσότερα

מבני נתונים הגבלת אחריות פרק - 1 אלגוריתמי מיון ואנליזה אסימפטוטית. מיון בועות Sort Bubble מאת : סשה גולדשטיין,

מבני נתונים הגבלת אחריות פרק - 1 אלגוריתמי מיון ואנליזה אסימפטוטית. מיון בועות Sort Bubble מאת : סשה גולדשטיין, 009 מבני נתונים סיכום למבחן, יולי sashag@cs מאת : סשה גולדשטיין, 7:50,3.7.09 עדכון אחרון : בשעה הגבלת אחריות הסיכום להלן הוא האינטרפרטציה שלי של החומר, שממש לא חייבת להיות נכונה או מייצגת את זו של הסגל.

Διαβάστε περισσότερα

סדרות - תרגילים הכנה לבגרות 5 יח"ל

סדרות - תרגילים הכנה לבגרות 5 יחל סדרות - הכנה לבגרות 5 יח"ל 5 יח"ל סדרות - הכנה לבגרות איברים ראשונים בסדרה) ) S מסמן סכום תרגיל S0 S 5, S6 בסדרה הנדסית נתון: 89 מצא את האיבר הראשון של הסדרה תרגיל גוף ראשון, בשנייה הראשונה לתנועתו עבר

Διαβάστε περισσότερα

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק יום א 14 : 00 15 : 00 בניין 605 חדר 103 http://u.cs.biu.ac.il/ brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק 29/11/2017 1 הגדרת קבוצת הנוסחאות הבנויות היטב באינדוקציה הגדרה : קבוצת הנוסחאות הבנויות

Διαβάστε περισσότερα

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשעד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, 635865 מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן שאלה מספר 1 נתון: 1. סדרה חשבונית שיש בה n איברים...2 3. האיבר

Διαβάστε περισσότερα

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת

תאריך עדכון אחרון: 27 בפברואר ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת תרגול 3 ניתוח לשיעורין תאריך עדכון אחרון: 27 בפברואר 2011. ניתוח לשיעורין analysis) (amortized הוא טכניקה לניתוח זמן ריצה לסדרת פעולות, אשר מאפשר קבלת חסמי זמן ריצה נמוכים יותר מאשר חסמים המתקבלים כאשר

Διαβάστε περισσότερα

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשעב זהויות טריגונומטריות תרגול חזרה זהויות טריגונומטריות si π α) si α π α) α si π π ), Z si α π α) t α cot π α) t α si α cot α α α si α si α + α siα ± β) si α β ± α si β α ± β) α β si α si β si α si α α α α si α si α α α + α si

Διαβάστε περισσότερα

תורת הגרפים - סימונים

תורת הגרפים - סימונים תורת הגרפים - סימונים.n = V,m = E בהינתן גרף,G = V,E נסמן: בתוך סימוני ה O,o,Ω,ω,Θ נרשה לעצמנו אף להיפטר מהערך המוחלט.. E V,O V + E כלומר, O V + E נכתוב במקום אם כי בכל מקרה אחר נכתוב או קשת של גרף לא

Διαβάστε περισσότερα

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות 25 בדצמבר 2016 תזכורת: תהי ) n f ( 1, 2,..., פונקציה המוגדרת בסביבה של f. 0 גזירה חלקית לפי משתנה ) ( = 0, אם קיים הגבול : 1 0, 2 0,..., בנקודה n 0 i f(,..,n,).lim

Διαβάστε περισσότερα

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m Observabiliy, Conrollabiliy תרגול 6 אובזרווביליות אם בכל רגע ניתן לשחזר את ( (ומכאן גם את המצב לאורך זמן, מתוך ידיעת הכניסה והיציאה עד לרגע, וזה עבור כל צמד כניסה יציאה, אז המערכת אובזרוובילית. קונטרולביליות

Διαβάστε περισσότερα

גבול ורציפות של פונקציה סקלרית שאלות נוספות

גבול ורציפות של פונקציה סקלרית שאלות נוספות 08 005 שאלה גבול ורציפות של פונקציה סקלרית שאלות נוספות f ( ) f ( ) g( ) f ( ) ו- lim f ( ) ו- ( ) (00) lim ( ) (00) f ( בסביבת הנקודה (00) ) נתון: מצאו ) lim g( ( ) (00) ננסה להיעזר בכלל הסנדביץ לשם כך

Διαβάστε περισσότερα

x a x n D f (iii) x n a ,Cauchy

x a x n D f (iii) x n a ,Cauchy גבולות ורציפות גבול של פונקציה בנקודה הגדרה: קבוצה אשר מכילה קטע פתוח שמכיל את a תקרא סביבה של a. קבוצה אשר מכילה קטע פתוח שמכיל את a אך לא מכילה את a עצמו תקרא סביבה מנוקבת של a. יהו a R ו f פונקציה מוגדרת

Διαβάστε περισσότερα

תכנון אלגוריתמים 2016 עבודה 1 שאלה 1 פתרון נתונות שתי בעיות. יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t.

תכנון אלגוריתמים 2016 עבודה 1 שאלה 1 פתרון נתונות שתי בעיות. יש למצוא: אורך מסלול קצר ביותר המתחיל באחד מן הקודקודים s 1,..., s k ומסתיים ב t. תכנון אלגוריתמים 2016 עבודה 1 פתרון שאלה 1 נזכר כי בגרף (E G, =,V) עבור שני קודקודים d(u, (v,u, v הוא אורך מסלול קצר ביותר מ u ל v. אם אין מסלול מ u ל.d(u, v) =,v נתונות שתי בעיות. בעיה א' מופע: גרף מכוון

Διαβάστε περισσότερα

חידה לחימום. כתבו תכנית שהקלט שלה הוא מספר שלם n,

חידה לחימום. כתבו תכנית שהקלט שלה הוא מספר שלם n, חידה לחימום נתון פיגום משולש של מוטות המחברים קודקודים ויוצרים קומות של משולשים קטנים, כמודגם באיור הבא, בו מתואר פיגום משולש בן שתי קומות: משימתו של פועל העובד בפיגום היא להתקדם מן הקודקוד השמאלי התחתון

Διαβάστε περισσότερα

השאלות..h(k) = k mod m

השאלות..h(k) = k mod m מבני נתונים פתרונות לסט שאלות דומה לשאלות מתרגיל 5 השאלות 2. נתונה טבלת ערבול שבה התנגשויות נפתרות בשיטת.Open Addressing הכניסו לטבלה את המפתחות הבאים: 59 88, 17, 28, 15, 4, 31, 22, 10, (מימין לשמאל),

Διαβάστε περισσότερα

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1 1 טורים כלליים 1. 1 התכנסות בהחלט מתכנס. מתכנס בהחלט אם n a הגדרה.1 אומרים שהטור a n משפט 1. טור מתכנס בהחלט הוא מתכנס. הוכחה. נוכיח עם קריטריון קושי. יהי אפסילון גדול מ- 0, אז אנחנו יודעים ש- n N n>m>n

Διαβάστε περισσότερα

{ : Halts on every input}

{ : Halts on every input} אוטומטים - תרגול 13: רדוקציות, משפט רייס וחזרה למבחן E תכונה תכונה הינה אוסף השפות מעל.(property המקיימות תנאים מסוימים (תכונה במובן של Σ תכונה לא טריביאלית: תכונה היא תכונה לא טריוויאלית אם היא מקיימת:.

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 13

מתמטיקה בדידה תרגול מס' 13 מתמטיקה בדידה תרגול מס' 13 נושאי התרגול: תורת הגרפים. 1 מושגים בסיסיים נדון בגרפים מכוונים. הגדרה 1.1 גרף מכוון הוא זוג סדור E G =,V כך ש V ו E. V הגרף נקרא פשוט אם E יחס אי רפלקסיבי. כלומר, גם ללא לולאות.

Διαβάστε περισσότερα

אלגברה מודרנית פתרון שיעורי בית 6

אלגברה מודרנית פתרון שיעורי בית 6 אלגברה מודרנית פתרון שיעורי בית 6 15 בינואר 016 1. יהי F שדה ויהיו q(x) p(x), שני פולינומים מעל F. מצאו פולינומים R(x) S(x), כך שמתקיים R(x),p(x) = S(x)q(x) + כאשר deg(q),deg(r) < עבור המקרים הבאים: (תזכורת:

Διαβάστε περισσότερα

' 2 סמ ליגרת ןורתפ םיפרגה תרותב םימתירוגלא דדצ 1 : הלאש ןורתפ רבסה תורעה

' 2 סמ ליגרת ןורתפ םיפרגה תרותב םימתירוגלא דדצ 1 : הלאש ןורתפ רבסה תורעה אלגוריתמים בתורת הגרפים פתרון תרגיל מס' 2 לשאלות והערות נא לפנות לאילן גרונאו (shrilan@cs.technion.ac.il) א) ב) ג) גרף דו-צדדי (bipartite) הינו גרף (E )G V, אשר קיימת חלוקה של צמתיו לשתי קבוצות U,W e =

Διαβάστε περισσότερα

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות אלגוריתמים חמדניים אלגוריתם חמדן, הוא כזה שבכל צעד עושה את הבחירה הטובה ביותר האפשרית, ולא מתחרט בהמשך גישה זו נראית פשטנית מדי, וכמובן שלא תמיד היא נכונה, אך במקרים רבים היא מוצאת פתרון אופטימאלי בתרגול

Διαβάστε περισσότερα

סיכום- בעיות מינימוםמקסימום - שאלון 806

סיכום- בעיות מינימוםמקסימום - שאלון 806 סיכום- בעיות מינימוםמקסימום - שאלון 806 בבעיותמינימום מקסימוםישלחפשאתנקודותהמינימוםהמוחלטוהמקסימוםהמוחלט. בשאלות מינימוםמקסימוםחובהלהראותבעזרתטבלה אובעזרתנגזרתשנייהשאכן מדובר עלמינימוםאומקסימום. לצורךקיצורהתהליך,

Διαβάστε περισσότερα

מיון. 1 מיון ערימה (Heapsort) חלק I 1.1 הגדרת ערימה 0.1 הגדרה של המושג מיון מסקנה: הערך הכי גבוה בערימה נמצא בשורש העץ!

מיון. 1 מיון ערימה (Heapsort) חלק I 1.1 הגדרת ערימה 0.1 הגדרה של המושג מיון מסקנה: הערך הכי גבוה בערימה נמצא בשורש העץ! מיון ערימה (Heapsort) מבני נתונים חלק I מיון מבני נתונים ד"ר ערן לונדון. הגדרת ערימה ערימה (בינארית) הינה מערך אשר ניתן להציגו כמו עץ בינארי מלא או כמעט מלא כאשר כל קודקוד בעץ מתאים לתא במערך. העץ הינו

Διαβάστε περισσότερα

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים (

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים ( תכנון ניסויים כאשר קיימת אישביעות רצון מהמצב הקיים (למשל כשלים חוזרים בבקרת תהליכים סטטיסטית) נחפש דרכים לשיפור/ייעול המערכת. ניתן לבצע ניסויים על גורם בודד, שני גורמים או יותר. ניסויים עם גורם בודד: נבצע

Διαβάστε περισσότερα

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט.

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט. פרק סיבוכיות פרק סיבוכיות המושג יעילות מהו? במדעי המחשב היעילות נמדדת בעזרת מדדי סיבוכיות, החשובים שבהם: של אלגוריתמים יעילותם תוכן הפרק: יעילות מהי (זיכרון וזמן, זמן ריצה T( של אלגוריתם מהו, מהם case,

Διαβάστε περισσότερα

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx דפי נוסחאות I גבולות נאמר כי כך שלכל δ קיים > ε לכל > lim ( ) L המקיים ( ) מתקיים L < ε הגדרת הגבול : < < δ lim ( ) lim ורק ( ) משפט הכריך (סנדוויץ') : תהיינה ( ( ( )g ( )h פונקציות המוגדרות בסביבה נקובה

Διαβάστε περισσότερα

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים. א{ www.sikumuna.co.il מהי קבוצה? קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים. קבוצה היא מושג יסודי במתמטיקה.התיאור האינטואיטיבי של קבוצה הוא אוסף של עצמים כלשהם. העצמים הנמצאים בקבוצה הם איברי הקבוצה.

Διαβάστε περισσότερα

תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי... 2 II מבני נתונים 20 8 מבני נתונים מופשטים משפט האב גרפים... 37

תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי... 2 II מבני נתונים 20 8 מבני נתונים מופשטים משפט האב גרפים... 37 תוכן עניינים I בעיות מיון 2 1 סימון אסימפטוטי................................................ 2 2 מיון בועות. Bubble Sort............................................ 2 3 מיון מיזוג. Merge Sort............................................

Διαβάστε περισσότερα

1 תוחלת מותנה. c ארזים 3 במאי G מדיד לפי Y.1 E (X1 A ) = E (Y 1 A )

1 תוחלת מותנה. c ארזים 3 במאי G מדיד לפי Y.1 E (X1 A ) = E (Y 1 A ) הסתברות למתמטיקאים c ארזים 3 במאי 2017 1 תוחלת מותנה הגדרה 1.1 לכל משתנה מקרי X אינטגרבילית ותת סיגמא אלגברה G F קיים משתנה מקרי G) Y := E (X המקיים: E (X1 A ) = E (Y 1 A ).G מדיד לפי Y.1.E Y

Διαβάστε περισσότερα

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות 1. מצאו צורה דיסיונקטיבית נורמלית קנונית לפסוקים הבאים: (ג)

Διαβάστε περισσότερα

מבני נתונים מבחן מועד א' סמסטר אביב תשס"ו

מבני נתונים מבחן מועד א' סמסטר אביב תשסו TECHNION ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE הטכניון מכון טכנולוגי לישראל הפקולטה למדעי המחשב מרצה: אהוד ריבלין מבני נתונים 234218 1 מבחן מועד א' סמסטר אביב תשס"ו מתרגלים: איתן

Διαβάστε περισσότερα

logn) = nlog. log(2n

logn) = nlog. log(2n תכנוןוניתוחאלגוריתמים סיכוםהתרגולים n log O( g( n)) = Ω( g( n)) = θ ( g( n)) = תרגול.3.04 סיבוכיות { f ( n) c> 0, n0 > 0 n> n0 0 f ( n) c g( n) } { f ( n) c> 0, n0 > 0 n> n0 0 c g( n) f ( n) } { f ( n)

Διαβάστε περισσότερα

חלק א' שאלה 3. a=3, b=2, k=0 3. T ( n) היותר H /m.

חלק א' שאלה 3. a=3, b=2, k=0 3. T ( n) היותר H /m. פתרון למבחן במבני נתונים, מועד א', קיץ 2005 חלק א' שאלה 1 א. רכיב הקשירות החזק של קודקוד x בגרף מכוון הינו אוסף כל הקודקודים y שמקימים שיש מסלול מ- x ל- y וכן מסלול מy ל- x. טעויות נפוצות שכחו לכתוב שזה

Διαβάστε περισσότερα

שאלה 1 V AB פתרון AB 30 R3 20 R

שאלה 1 V AB פתרון AB 30 R3 20 R תרגילים בתורת החשמל כתה יג שאלה א. חשב את המתח AB לפי משפט מילמן. חשב את הזרם בכל נגד לפי המתח שקיבלת בסעיף א. A 60 0 8 0 0.A B 8 60 0 0. AB 5. v 60 AB 0 0 ( 5.) 0.55A 60 א. פתרון 0 AB 0 ( 5.) 0 0.776A

Διαβάστε περισσότερα

Nir Adar גירסה 1.00 עמוד 1

Nir Adar    גירסה 1.00 עמוד 1 גירסה 1.00 מבני נתונים מסמך זה הורד מהאתר. אין להפיץ מסמך זה במדיה כלשהי, ללא אישור מפורש מאת המחבר. מחבר המסמך איננו אחראי לכל נזק, ישיר או עקיף, שיגרם עקב השימוש במידע המופיע במסמך, וכן לנכונות התוכן

Διαβάστε περισσότερα

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה.

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה. בחינת סיווג במתמטיקה.9.017 פתרונות.1 סדרת מספרים ממשיים } n {a נקראת מונוטונית עולה אם לכל n 1 מתקיים n+1.a n a האם הסדרה {n a} n = n היא מונוטונית עולה? הוכיחו תשובתכם. הסדרה } n a} היא אכן מונוטונית

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 5

מתמטיקה בדידה תרגול מס' 5 מתמטיקה בדידה תרגול מס' 5 נושאי התרגול: פונקציות 1 פונקציות הגדרה 1.1 פונקציה f מ A (התחום) ל B (הטווח) היא קבוצה חלקית של A B המקיימת שלכל a A קיים b B יחיד כך ש. a, b f a A.f (a) = ιb B. a, b f או, בסימון

Διαβάστε περισσότερα

הרצאה תרגילים סמינר תורת המספרים, סמסטר אביב פרופ' יעקב ורשבסקי

הרצאה תרגילים סמינר תורת המספרים, סמסטר אביב פרופ' יעקב ורשבסקי הרצאה תרגילים סמינר תורת המספרים, סמסטר אביב 2011 2010 פרופ' יעקב ורשבסקי אסף כץ 15//11 1 סמל לזנדר יהי מספר שלם קבוע, ו K שדה גלובלי המכיל את חבורת שורשי היחידה מסדר µ. תהי S קבוצת הראשוניים הארכימדיים

Διαβάστε περισσότερα

Charles Augustin COULOMB ( ) קולון חוק = K F E המרחק סטט-קולון.

Charles Augustin COULOMB ( ) קולון חוק = K F E המרחק סטט-קולון. Charles Augustin COULOMB (1736-1806) קולון חוק חוקקולון, אשרנקראעלשםהפיזיקאיהצרפתישארל-אוגוסטיןדהקולוןשהיהאחדהראשוניםשחקרבאופןכמותיאתהכוחותהפועלים ביןשניגופיםטעונים. מדידותיוהתבססועלמיתקןהנקראמאזניפיתול.

Διαβάστε περισσότερα

תרגול מס' 1 3 בנובמבר 2012

תרגול מס' 1 3 בנובמבר 2012 תרגול מס' 1 3 בנובמבר 2012 1 מערכת המספרים השלמים בשיעור הקרוב אנו נעסוק בקבוצת המספרים השלמים Z עם הפעולות (+) ו ( ), ויחס סדר (>) או ( ). כל התכונות הרגילות והידועות של השלמים מתקיימות: חוק הקיבוץ (אסוציאטיביות),

Διαβάστε περισσότερα

Nir Adar

Nir Adar גירסה 28.6.2003-1.00 רשימת דילוגים מסמך זה הורד מהאתר. אין להפיץ מסמך זה במדיה כלשהי, ללא אישור מפורש מאת המחבר. מחבר המסמך איננו אחראי לכל נזק, ישיר או עקיף, שיגרם עקב השימוש במידע המופיע במסמך, וכן לנכונות

Διαβάστε περισσότερα

TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE סמסטר אביב תשס"ו מס' סטודנט:

TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE סמסטר אביב תשסו מס' סטודנט: TECHNION ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE הטכניון מכון טכנולוגי לישראל הפקולטה למדעי המחשב מבני נתונים 234218 1 מבחן מועד ב ' סמסטר אביב תשס"ו מרצה: אהוד ריבלין מתרגלים: איתן

Διαβάστε περισσότερα

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V )

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V ) הצגות של חבורות סופיות c ארזים 6 בינואר 017 1 משפט ברנסייד משפט 1.1 ברנסייד) יהיו p, q ראשוניים. תהי G חבורה מסדר.a, b 0,p a q b אזי G פתירה. הוכחה: באינדוקציה על G. אפשר להניח כי > 1 G. נבחר תת חבורה

Διαβάστε περισσότερα

3-9 - a < x < a, a < x < a

3-9 - a < x < a, a < x < a 1 עמוד 59, שאלהמס', 4 סעיףג' תיקוני הקלדה שאלון 806 צריך להיות : ג. מצאאתמקומושלאיברבסדרהזו, שקטןב- 5 מסכוםכלהאיבריםשלפניו. עמוד 147, שאלהמס' 45 ישלמחוקאתהשאלה (מופיעהפעמיים) עמוד 184, שאלהמס', 9 סעיףב',תשובה.

Διαβάστε περισσότερα

אלגוריתמים בתורת הגרפים חלק ראשון

אלגוריתמים בתורת הגרפים חלק ראשון גירסה 1. 11.11.22 אלגוריתמים בתורת הגרפים חלק ראשון מסמך זה הינו הראשון בסדרת מסמכים אודות תורת הגרפים, והוא חופף בחלקו לקורס "אלגוריתמים בתורת הגרפים" בטכניון (שאינו מועבר יותר). ברצוני להודות תודה מיוחדת

Διαβάστε περισσότερα

פרק 8: עצים. .(Tree) במשפטים הגדרה: גרף ללא מעגלים נקרא יער. דוגמה 8.1: תרגילים: הקודקודים 2 ו- 6 בדוגמה הוא ).

פרק 8: עצים. .(Tree) במשפטים הגדרה: גרף ללא מעגלים נקרא יער. דוגמה 8.1: תרגילים: הקודקודים 2 ו- 6 בדוגמה הוא ). מבוא לפרק: : עצים.(ree) עצים הם גרפים חסרי מעגלים. כך, כיוון פרק זה הוא מעין הפוך לשני הפרקים הקודמים. עץ יסומן לרב על ידי במשפטים 8.1-8.3 נפתח חלק מתכונותיו, ובהמשך נדון בהיבטים שונים של "עץ פורש" של

Διαβάστε περισσότερα

תרגול משפט הדיברגנץ. D תחום חסום וסגור בעל שפה חלקה למדי D, ותהי F פו' וקטורית :F, R n R n אזי: נוסחת גרין I: הוכחה: F = u v כאשר u פו' סקלרית:

תרגול משפט הדיברגנץ. D תחום חסום וסגור בעל שפה חלקה למדי D, ותהי F פו' וקטורית :F, R n R n אזי: נוסחת גרין I: הוכחה: F = u v כאשר u פו' סקלרית: משפט הדיברגנץ תחום חסום וסגור בעל שפה חלקה למדי, ותהי F פו' וקטורית :F, R n R n אזי: div(f ) dxdy = F, n dr נוסחת גרין I: uδv dxdy = u v n dr u, v dxdy הוכחה: F = (u v v, u x y ) F = u v כאשר u פו' סקלרית:

Διαβάστε περισσότερα

מודלים חישוביים פתרון תרגיל 5

מודלים חישוביים פתרון תרגיל 5 מודלים חישוביים פתרון תרגיל 5 כתוב אוטומט דטרמיניסטי לשפות הבאות מעל הא"ב.Σ={,} א. *Σ. q, ב. q, ג. {ε}, q, q ד. } = 3 {w w mod, q, q,, ה. ''} {w w does not contin the sustring q 4 q 3 q q כתוב אוטומט דטרמיניסטי

Διαβάστε περισσότερα

מבני נתונים אדמיניסטרציה ד"ר אלכס סמורודניצקי, רוס 210, שני 5:30 4:15. ציון:

מבני נתונים אדמיניסטרציה דר אלכס סמורודניצקי, רוס 210, שני 5:30 4:15. ציון: מבני נתונים בס"ד, ט' אדר א' תשע"א: שעור 1 אדמיניסטרציה ד"ר אלכס סמורודניצקי, רוס 210, שני 5:30 4:15. ציון: בחינת מגן 20%. תרגילים: 14 13, מורידים את האחד הכי גרוע. 10% מהציון. אתר: www.cs.huji.ac.il/~dast

Διαβάστε περισσότερα

אלגוריתמים בתורת הגרפים חלק שני

אלגוריתמים בתורת הגרפים חלק שני גירסה 1.00 5.12.2002 אלגוריתמים בתורת הגרפים חלק שני מסמך זה הינו השני בסדרת מסמכים אודות תורת הגרפים, והוא חופף בחלקו לקורס "אלגוריתמים בתורת הגרפים" בטכניון (שאינו מועבר יותר). ברצוני להודות תודה מיוחדת

Διαβάστε περισσότερα

רשימת משפטים והגדרות

רשימת משפטים והגדרות רשימת משפטים והגדרות חשבון אינפיניטיסימאלי ב' מרצה : למברג דן 1 פונקציה קדומה ואינטגרל לא מסויים הגדרה 1.1. (פונקציה קדומה) יהי f :,] [b R פונקציה. פונקציה F נקראת פונקציה קדומה של f אם.[, b] גזירה ב F

Διαβάστε περισσότερα

תורת המספרים 1 פירוק לגורמים ראשוניים סיכום הגדרות טענות ומשפטים אביב הגדרות 1.2 טענות

תורת המספרים 1 פירוק לגורמים ראשוניים סיכום הגדרות טענות ומשפטים אביב הגדרות 1.2 טענות תורת המספרים סיכום הגדרות טענות ומשפטים אביב 017 1 פירוק לגורמים ראשוניים 1.1 הגדרות חוג A C נקראת חוג אם: היא מכילה את 0 ואת 1 סגורה תחת חיבור, חיסור, וכפל הפיך A חוג. a A נקרא הפיך אם 0,a.a 1 A קבוצת

Διαβάστε περισσότερα

co ארזים 3 במרץ 2016

co ארזים 3 במרץ 2016 אלגברה לינארית 2 א co ארזים 3 במרץ 2016 ניזכר שהגדרנו ווקטורים וערכים עצמיים של מטריצות, והראינו כי זהו מקרה פרטי של ההגדרות עבור טרנספורמציות. לכן כל המשפטים והמסקנות שהוכחנו לגבי טרנספורמציות תקפים גם

Διαβάστε περισσότερα

תרגיל 7 פונקציות טריגונומטריות הערות

תרגיל 7 פונקציות טריגונומטריות הערות תרגיל 7 פונקציות טריגונומטריות הערות. פתרו את המשוואות הבאות. לא מספיק למצוא פתרון אחד יש למצוא את כולם! sin ( π (א) = x sin (ב) = x cos (ג) = x tan (ד) = x) (ה) = tan x (ו) = 0 x sin (x) + sin (ז) 3 =

Διαβάστε περισσότερα

הגדרה: מצבים k -בני-הפרדה

הגדרה: מצבים k -בני-הפרדה פרק 12: שקילות מצבים וצמצום מכונות לעי תים קרובות, תכנון המכונה מתוך סיפור המעשה מביא להגדרת מצבים יתי רים states) :(redundant הפונקציה שהם ממלאים ניתנת להשגה באמצעו ת מצבים א חרים. כיוון שמספר רכיבי הזיכרון

Διαβάστε περισσότερα

. {e M: x e} מתקיים = 1 x X Y

. {e M: x e} מתקיים = 1 x X Y שימושי זרימה פרק 7.5-13 ב- Kleinberg/Tardos שידוך בגרף דו-צדדי עיבוד תמונות 1 בעיית השידוך באתר שידוכים רשומים m נשים ו- n גברים. תוכנת האתר מאתרת זוגות מתאימים. בהינתן האוסף של ההתאמות האפשריות, יש לשדך

Διαβάστε περισσότερα

אלגוריתמים / תרגיל #1

אלגוריתמים / תרגיל #1 1 אריאל סטולרמן אלגוריתמים / תרגיל #1 קבוצה 02 (1) טענה: אם בגרף לא מכוון וקשיר יש 2 צמתים מדרגה אי זוגית ושאר הצמתים מדרגה זוגית, זהו תנאי הכרחי ומספיק לקיום מסלול אויילר בגרף. הערות: הוכחה: התוספת כי

Διαβάστε περισσότερα

םינותנ ינבמ (הנכות ידימלתל)

םינותנ ינבמ (הנכות ידימלתל) מבני נתונים (לתלמידי תוכנה) 0368.2158 מועד ב', גירסה 1 2 מתוך 2 שיטת האב Method Master n Tn ( ) = at( ) + fn ( ) b logba logba ε Θ ( n ) if : ε > 0, f( n) = O( n ) logba logba Tn ( ) = Θ ( n lg n) if:

Διαβάστε περισσότερα

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז פתרון תרגיל בית 6 מבוא לתורת החבורות 88-211 סמסטר א תשע ז הוראות בהגשת הפתרון יש לרשום שם מלא, מספר ת ז ומספר קבוצת תרגול. תאריך הגשת התרגיל הוא בתרגול בשבוע המתחיל בתאריך ג טבת ה תשע ז, 1.1.2017. שאלות

Διαβάστε περισσότερα

מבני נתונים מבחן מועד ב' סמסטר חורף תשס"ו

מבני נתונים מבחן מועד ב' סמסטר חורף תשסו TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE הטכניון - מכון טכנולוגי לישראל הפקולטה למדעי המחשב מרצים: רן אל-יניב, נאדר בשותי מבני נתונים 234218-1 מבחן מועד ב' סמסטר חורף תשס"ו

Διαβάστε περισσότερα

פרק 13 רקורסיה רקורסיה רקורסיה רקורסיות פשוטות: חישוב עצרת. תמונת המחסנית ב-() factorial רקורסיות פשוטות: פיבונאצ'י

פרק 13 רקורסיה רקורסיה רקורסיה רקורסיות פשוטות: חישוב עצרת. תמונת המחסנית ב-() factorial רקורסיות פשוטות: פיבונאצ'י פרק 3 רקורסיה רקורסיה נכתב ע"י רן רובינשטיין עודכן ע"י איתי שרון רקורסיה הינה שיטה לתכנון אלגוריתמים, שבה הפתרון לקלט כלשהו מתקבל על ידי פתרון אותה הבעיה בדיוק על קלט פשוט יותר, והרחבת פתרון זה לאחר מכן

Διαβάστε περισσότερα

לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ב (2012) דפי עזר

לוגיקה ותורת הקבוצות מבחן סופי אביב תשעב (2012) דפי עזר לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ב (2012) דפי עזר תורת הקבוצות: סימונים.N + = N \ {0} קבוצת המספרים הטבעיים; N Z קבוצת המספרים השלמים. Q קבוצת המספרים הרציונליים. R קבוצת המספרים הממשיים. הרכבת

Διαβάστε περισσότερα

תורת הקבוצות תרגיל בית 2 פתרונות

תורת הקבוצות תרגיל בית 2 פתרונות תורת הקבוצות תרגיל בית 2 פתרונות חיים שרגא רוזנר כ"ה בניסן, תשע"ה תזכורות תקציר איזומורפיזם סדר, רישא, טרנזיטיביות, סודרים, השוואת סודרים, סודר עוקב, סודר גבולי. 1. טרנזיטיבות וסודרים קבוצה A היא טרנזיטיבית

Διαβάστε περισσότερα

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS כלליים שיטות חיפוש בבגרפים שיטה 1: חיפוש לרוחב S (readth irst Search) זמן: ) Θ( V + הרעיון: שימוש בתור.O שיטה 2: חיפוש לעומק S (epth irst Search) Θ( V + ) יהי =(V,) גרף כלשהו, V הוא צומת התחלת החיפוש.

Διαβάστε περισσότερα

חשבון אינפיניטסימלי 1 סיכום הרצאות באוניברסיטה חיפה, חוג לסטטיסטיקה.

חשבון אינפיניטסימלי 1 סיכום הרצאות באוניברסיטה חיפה, חוג לסטטיסטיקה. חשבון אינפיניטסימלי 1 סיכום הרצאות באוניברסיטה חיפה, חוג לסטטיסטיקה. מרצה: למברג דן תוכן העניינים 3 מספרים ממשיים 1 3.................................. סימונים 1. 1 3..................................

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 2

מתמטיקה בדידה תרגול מס' 2 מתמטיקה בדידה תרגול מס' 2 נושאי התרגול: כמתים והצרנות. משתנים קשורים וחופשיים. 1 כמתים והצרנות בתרגול הקודם עסקנו בתחשיב הפסוקים, שבו הנוסחאות שלנו היו מורכבות מפסוקים יסודיים (אשר קיבלו ערך T או F) וקשרים.

Διαβάστε περισσότερα

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד. חידה לחימום ( M ש- N > (כך מספרים טבעיים Mו- N שappleי appleתוappleים בעלי אותה הזוגיות (שappleיהם זוגיים או שappleיהם אי - זוגיים). המספרים הטבעיים מ- Mעד Nמסודרים בשורה, ושappleי שחקappleים משחקים במשחק.

Διαβάστε περισσότερα